Copyright | (c) 2023 Mirko Westermeier |
---|---|
License | MIT |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Sometimes, bounded enum types should be circular. Consider this enum type of directions:
data Direction = North | East | South | West deriving (Eq, Enum, Bounded)
The Enum
instance allows for succ North
to be East
and succ East
to be South
. But in this case, one would like to have some kind of
succ
with succ West = North
again. With Eq
and Bounded
instances,
the functions defined in this module act like circular versions of succ
and pred
.