練習問題 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