Enummembers are sequentially ordered types — they can be enumerated. The main advantage of the
Enumtypeclass is that we can use its types in list ranges. They also have defined successors and predecessors, which you can get with the
I could not find Cats’ equivalent for this typeclass.
It’s not an
Enum or range, but non/spire has an interesting data structure called
Check out Erik’s Intervals: Unifying Uncertainty, Ranges, and Loops talk from nescala 2015.