universe-base-1.0: A class for finite and recursively enumerable types and some helper functions for enumerating them

Safe HaskellSafe-Inferred

Data.Universe.Class

Synopsis

Documentation

Bottoms are ignored for this entire module: only fully-defined inhabitants are considered inhabitants.

class Universe a whereSource

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

class Universe a => Finite a whereSource

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