newtype Cardinality a where
Cardinality :: Number -> Cardinality a
class (Ord a) <= Enum a where
cardinality :: Cardinality a
firstEnum :: a
lastEnum :: a
succ :: a -> Maybe a
pred :: a -> Maybe a
instance enumBoolean :: Enum Boolean
instance enumChar :: Enum Char
instance enumEither :: (Enum a, Enum b) => Enum (Either a b)
instance enumMaybe :: (Enum a) => Enum (Maybe a)
instance enumTuple :: (Enum a, Enum b) => Enum (Tuple a b)
fromEnum :: forall a. (Enum a) => a -> Number
runCardinality :: forall a. Cardinality a -> Number
toEnum :: forall a. (Enum a) => Number -> Maybe a