length の例。length はどのような要素のリストにも適用可能である。
length :: [a] -> Int
a は型変数。型変数は小文字で始まる。通常 a, b, c, という名前が使われる。
length は多相関数、その型 [a] -> Int は多相型と呼ばれる。
> 1 + 2
3
> 1.1 + 2.2
3.3
(+) の型。
(+) :: Num a => a -> a -> a
Num a はクラス制約である。Num はクラス名、a は型変数。
1つ以上のクラス制約を持つ型は多重定義型である。