universe-instances-base-1.0: Universe instances for types from the base package

Safe HaskellSafe
LanguageHaskell2010

Data.Universe.Instances.Base

Contents

Synopsis

Documentation

Instances of Universe and Finite for built-in types.

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

Methods

universe :: [Bool] #

Universe Char # 

Methods

universe :: [Char] #

Universe Int # 

Methods

universe :: [Int] #

Universe Int8 # 

Methods

universe :: [Int8] #

Universe Int16 # 

Methods

universe :: [Int16] #

Universe Int32 # 

Methods

universe :: [Int32] #

Universe Int64 # 

Methods

universe :: [Int64] #

Universe Integer # 

Methods

universe :: [Integer] #

Universe Ordering # 

Methods

universe :: [Ordering] #

Universe Word # 

Methods

universe :: [Word] #

Universe Word8 # 

Methods

universe :: [Word8] #

Universe Word16 # 

Methods

universe :: [Word16] #

Universe Word32 # 

Methods

universe :: [Word32] #

Universe Word64 # 

Methods

universe :: [Word64] #

Universe () # 

Methods

universe :: [()] #

Universe All # 

Methods

universe :: [All] #

Universe Any # 

Methods

universe :: [Any] #

Finite Bool # 

Methods

universeF :: [Bool] #

Finite Char # 

Methods

universeF :: [Char] #

Finite Int # 

Methods

universeF :: [Int] #

Finite Int8 # 

Methods

universeF :: [Int8] #

Finite Int16 # 

Methods

universeF :: [Int16] #

Finite Int32 # 

Methods

universeF :: [Int32] #

Finite Int64 # 

Methods

universeF :: [Int64] #

Finite Ordering # 

Methods

universeF :: [Ordering] #

Finite Word # 

Methods

universeF :: [Word] #

Finite Word8 # 

Methods

universeF :: [Word8] #

Finite Word16 # 

Methods

universeF :: [Word16] #

Finite Word32 # 

Methods

universeF :: [Word32] #

Finite Word64 # 

Methods

universeF :: [Word64] #

Finite () # 

Methods

universeF :: [()] #

Finite All # 

Methods

universeF :: [All] #

Finite Any # 

Methods

universeF :: [Any] #

Universe a => Universe [a] # 

Methods

universe :: [[a]] #

Universe a => Universe (Maybe a) # 

Methods

universe :: [Maybe a] #

(~) * a Integer => Universe (Ratio a) # 

Methods

universe :: [Ratio a] #

Universe a => Universe (Dual a) # 

Methods

universe :: [Dual a] #

Universe a => Universe (Sum a) # 

Methods

universe :: [Sum a] #

Universe a => Universe (Product a) # 

Methods

universe :: [Product a] #

Universe a => Universe (First a) # 

Methods

universe :: [First a] #

Universe a => Universe (Last a) # 

Methods

universe :: [Last a] #

Finite a => Finite (Maybe a) # 

Methods

universeF :: [Maybe a] #

Finite a => Finite (Dual a) # 

Methods

universeF :: [Dual a] #

Finite a => Finite (Sum a) # 

Methods

universeF :: [Sum a] #

Finite a => Finite (Product a) # 

Methods

universeF :: [Product a] #

Finite a => Finite (First a) # 

Methods

universeF :: [First a] #

Finite a => Finite (Last a) # 

Methods

universeF :: [Last a] #

(Finite a, Ord a, Universe b) => Universe (a -> b) # 

Methods

universe :: [a -> b] #

(Universe a, Universe b) => Universe (Either a b) # 

Methods

universe :: [Either a b] #

(Universe a, Universe b) => Universe (a, b) # 

Methods

universe :: [(a, b)] #

(Ord a, Finite a, Finite b) => Finite (a -> b) # 

Methods

universeF :: [a -> b] #

(Finite a, Finite b) => Finite (Either a b) # 

Methods

universeF :: [Either a b] #

(Finite a, Finite b) => Finite (a, b) # 

Methods

universeF :: [(a, b)] #

(Universe a, Universe b, Universe c) => Universe (a, b, c) # 

Methods

universe :: [(a, b, c)] #

(Finite a, Finite b, Finite c) => Finite (a, b, c) # 

Methods

universeF :: [(a, b, c)] #

(Universe a, Universe b, Universe c, Universe d) => Universe (a, b, c, d) # 

Methods

universe :: [(a, b, c, d)] #

(Finite a, Finite b, Finite c, Finite d) => Finite (a, b, c, d) # 

Methods

universeF :: [(a, b, c, d)] #

(Universe a, Universe b, Universe c, Universe d, Universe e) => Universe (a, b, c, d, e) # 

Methods

universe :: [(a, b, c, d, e)] #

(Finite a, Finite b, Finite c, Finite d, Finite e) => Finite (a, b, c, d, e) # 

Methods

universeF :: [(a, b, c, d, e)] #