練習問題 2.3.2

値が方位磁石の四方位を表すデータ型
Direction
を定義し,与えられた方位の反対方向を示す方位を返す関数
reverse
を定義せよ.



reverse
Prelude
で定義済みの名前なので,ここでは
reverse'
を定義する.


data Direction = East | South | West | North
  deriving (Eq,Ord,Enum)

reverse' :: Direction -> Direction
reverse' d = toEnum $ (fromEnum d + 2) `div` 4