map :: (a -> b) -> [a] -> [b] とか、もし多相型が無かったら
全ての型a,bに対してmapを定義する必要があるじゃん?

動的型と違うのは、map f xs としたときに
fの引数の型とxsの要素の型が一致してないと
型エラーになるところ