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

Safe HaskellNone
LanguageHaskell2010

Data.Universe.Instances.Extended

Contents

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] #

Orphan instances

Universe Void # 

Methods

universe :: [Void] #

Finite Void # 

Methods

universeF :: [Void] #

(Representable f, Finite (Rep f), Ord (Rep f), Universe a) => Universe (Co f a) # 

Methods

universe :: [Co f a] #

(Representable f, Finite (Rep f), Ord (Rep f), Finite a) => Finite (Co f a) # 

Methods

universeF :: [Co f a] #

(Representable f, Finite s, Ord s, Finite (Rep f), Ord (Rep f), Universe a) => Universe (TracedT s f a) # 

Methods

universe :: [TracedT s f a] #

(Representable f, Finite s, Ord s, Finite (Rep f), Ord (Rep f), Finite a) => Finite (TracedT s f a) # 

Methods

universeF :: [TracedT s f a] #