Enum – Enumeration Types
The last class we will look at here is the Enum class which supports operations on sequentially ordered types. We have already used this class in [1..3] for creating a list of elements from 1 to 3.
class Enum a where
succ, pred :: a -> a
toEnum :: Int -> a
fromEnum :: a -> Int
enumFrom :: a -> [a] -- [n..]
enumFromThen :: a -> a -> [a] -- [n, n'..]
enumFromTo :: a -> a -> [a] -- [n..m]
enumFromThenTo :: a -> a -> a -> [a] -- [n, n'..m]
We do not have to worry about the implementation details of the Enum class at this point, but we can see that with an Enum class, we have access to the [..] methods which can be very useful.
Copy link