| Copyright | (c) 2023 Mirko Westermeier |
|---|---|
| License | MIT |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
Data.Enum.Circular
Description
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.