universe-instances-extended-1.0: Universe instances for types from select extra packages

Safe HaskellNone

Data.Universe.Instances.Extended

Synopsis

Documentation

Instances for Universe and Finite for function-like functors and the empty type.

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.

Methods

universe :: [a]

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.

Methods

universeF :: [a]

Instances

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 Void 
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) 
(Representable f, Finite (Rep f), Ord (Rep f), Finite a) => Finite (Co f a) 
(Finite a, Finite b, Finite c) => Finite (a, b, c) 
(Representable f, Finite s, Ord s, Finite (Rep f), Ord (Rep f), Finite a) => Finite (TracedT s f a) 
(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)