練習問題 2.1.6
Triangleを型クラス
Ordのインスタンスとして定義するにはいくつの等式が必要になるか(2.3節に同じことを実現する別の方法について説明がある).
構成子が4つあるので < を
Trueにするパターンは6通り. それ以外は
Falseになる.したがって,7つの等式が必要.
data Triangle = Failure | Isosceles | Equilateral | Scalene
instance Eq Triangle where
Failure == Failure = True
Isosceles == Isosceles = True
Equilateral == Equilateral = True
Scalene == Scalene = True
_ == _ = False
instance Ord Triangle where
Failure < Isosceles = True
Failure < Equilateral = True
Failure < Scalene = True
Isosceles < Equilateral = True
Isosceles < Scalene = True
Equilateral < Scalene = True
_ < _ = False