■型クラス
Prelude> :t (==)
(==) :: Eq a => a -> a -> Bool
=>の前にあるのが型クラス制約というもので、"型aはEq型でないといけない"ことを意味する。
なので、全体では"==は同じ型aの引数をとって、型aをとってBOOLを返す関数です。そして型aはEq型のインスタンスである必要があります"
ということを意味しています。
型クラスの例とサポートしている(しないといけないふるまい)
Eq型:==、/=
Ord型:>、<、>=、<=
Show型:インスタンスを文字列出力可能であること