Safe Haskell | Safe-Inferred |
---|
Documentation
class Universe a where
Creating an instance of this class is a declaration that your type is
recursively enumerable (and that universe
is that enumeration). In
particular, you promise that any finite inhabitant has a finite index in
universe
, and that no inhabitant appears at two different finite indices.
universe :: [a]
Universe Bool | |
Universe Char | |
Universe Int | |
Universe Int8 | |
Universe Int16 | |
Universe Int32 | |
Universe Int64 | |
Universe Integer | |
Universe Ordering | |
Universe Word | |
Universe Word8 | |
Universe Word16 | |
Universe Word32 | |
Universe Word64 | |
Universe () | |
Universe All | |
Universe Any | |
Universe a => Universe [a] | |
~ * a Integer => Universe (Ratio a) | |
Universe a => Universe (Dual a) | |
Universe a => Universe (Sum a) | |
Universe a => Universe (Product a) | |
Universe a => Universe (First a) | |
Universe a => Universe (Last a) | |
Universe a => Universe (Maybe a) | |
(Finite a, Ord a, Universe b) => Universe (a -> b) | |
(Universe a, Universe b) => Universe (Either a b) | |
(Universe a, Universe b) => Universe (a, b) | |
(Universe a, Universe b, Universe c) => Universe (a, b, c) | |
(Universe a, Universe b, Universe c, Universe d) => Universe (a, b, c, d) | |
(Universe a, Universe b, Universe c, Universe d, Universe e) => Universe (a, b, c, d, e) |
class Universe a => Finite a where
Creating an instance of this class is a declaration that your universe
eventually ends. Minimal definition: no methods defined. By default,
universeF = universe
, but for some types (like Either
) the universeF
method may have a more intuitive ordering.
universeF :: [a]
Finite Bool | |
Finite Char | |
Finite Int | |
Finite Int8 | |
Finite Int16 | |
Finite Int32 | |
Finite Int64 | |
Finite Ordering | |
Finite Word | |
Finite Word8 | |
Finite Word16 | |
Finite Word32 | |
Finite Word64 | |
Finite () | |
Finite All | |
Finite Any | |
Finite a => Finite (Dual a) | |
Finite a => Finite (Sum a) | |
Finite a => Finite (Product a) | |
Finite a => Finite (First a) | |
Finite a => Finite (Last a) | |
Finite a => Finite (Maybe a) | |
(Ord a, Finite a, Finite b) => Finite (a -> b) | |
(Finite a, Finite b) => Finite (Either a b) | |
(Finite a, Finite b) => Finite (a, b) | |
(Finite a, Finite b, Finite c) => Finite (a, b, c) | |
(Finite a, Finite b, Finite c, Finite d) => Finite (a, b, c, d) | |
(Finite a, Finite b, Finite c, Finite d, Finite e) => Finite (a, b, c, d, e) |