-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Universe instances for types from the base package
--   
--   Universe instances for types from the base package
@package universe-instances-base
@version 1.0

module Data.Universe.Instances.Base

-- | Creating an instance of this class is a declaration that your type is
--   recursively enumerable (and that <a>universe</a> is that enumeration).
--   In particular, you promise that any finite inhabitant has a finite
--   index in <a>universe</a>, and that no inhabitant appears at two
--   different finite indices.
class Universe a
universe :: Universe a => [a]

-- | Creating an instance of this class is a declaration that your
--   <a>universe</a> eventually ends. Minimal definition: no methods
--   defined. By default, <tt>universeF = universe</tt>, but for some types
--   (like <a>Either</a>) the <a>universeF</a> method may have a more
--   intuitive ordering.
class Universe a => Finite a
universeF :: Finite a => [a]
instance Data.Universe.Class.Universe ()
instance Data.Universe.Class.Universe GHC.Types.Bool
instance Data.Universe.Class.Universe GHC.Types.Char
instance Data.Universe.Class.Universe GHC.Types.Ordering
instance Data.Universe.Class.Universe GHC.Integer.Type.Integer
instance Data.Universe.Class.Universe GHC.Types.Int
instance Data.Universe.Class.Universe GHC.Int.Int8
instance Data.Universe.Class.Universe GHC.Int.Int16
instance Data.Universe.Class.Universe GHC.Int.Int32
instance Data.Universe.Class.Universe GHC.Int.Int64
instance Data.Universe.Class.Universe GHC.Types.Word
instance Data.Universe.Class.Universe GHC.Word.Word8
instance Data.Universe.Class.Universe GHC.Word.Word16
instance Data.Universe.Class.Universe GHC.Word.Word32
instance Data.Universe.Class.Universe GHC.Word.Word64
instance (Data.Universe.Class.Universe a, Data.Universe.Class.Universe b) => Data.Universe.Class.Universe (Data.Either.Either a b)
instance Data.Universe.Class.Universe a => Data.Universe.Class.Universe (GHC.Base.Maybe a)
instance (Data.Universe.Class.Universe a, Data.Universe.Class.Universe b) => Data.Universe.Class.Universe (a, b)
instance (Data.Universe.Class.Universe a, Data.Universe.Class.Universe b, Data.Universe.Class.Universe c) => Data.Universe.Class.Universe (a, b, c)
instance (Data.Universe.Class.Universe a, Data.Universe.Class.Universe b, Data.Universe.Class.Universe c, Data.Universe.Class.Universe d) => Data.Universe.Class.Universe (a, b, c, d)
instance (Data.Universe.Class.Universe a, Data.Universe.Class.Universe b, Data.Universe.Class.Universe c, Data.Universe.Class.Universe d, Data.Universe.Class.Universe e) => Data.Universe.Class.Universe (a, b, c, d, e)
instance Data.Universe.Class.Universe a => Data.Universe.Class.Universe [a]
instance Data.Universe.Class.Universe Data.Semigroup.Internal.All
instance Data.Universe.Class.Universe Data.Semigroup.Internal.Any
instance Data.Universe.Class.Universe a => Data.Universe.Class.Universe (Data.Semigroup.Internal.Sum a)
instance Data.Universe.Class.Universe a => Data.Universe.Class.Universe (Data.Semigroup.Internal.Product a)
instance Data.Universe.Class.Universe a => Data.Universe.Class.Universe (Data.Semigroup.Internal.Dual a)
instance Data.Universe.Class.Universe a => Data.Universe.Class.Universe (Data.Monoid.First a)
instance Data.Universe.Class.Universe a => Data.Universe.Class.Universe (Data.Monoid.Last a)
instance (a ~ GHC.Integer.Type.Integer) => Data.Universe.Class.Universe (GHC.Real.Ratio a)
instance (Data.Universe.Class.Finite a, GHC.Classes.Ord a, Data.Universe.Class.Universe b) => Data.Universe.Class.Universe (a -> b)
instance Data.Universe.Class.Finite ()
instance Data.Universe.Class.Finite GHC.Types.Bool
instance Data.Universe.Class.Finite GHC.Types.Char
instance Data.Universe.Class.Finite GHC.Types.Ordering
instance Data.Universe.Class.Finite GHC.Types.Int
instance Data.Universe.Class.Finite GHC.Int.Int8
instance Data.Universe.Class.Finite GHC.Int.Int16
instance Data.Universe.Class.Finite GHC.Int.Int32
instance Data.Universe.Class.Finite GHC.Int.Int64
instance Data.Universe.Class.Finite GHC.Types.Word
instance Data.Universe.Class.Finite GHC.Word.Word8
instance Data.Universe.Class.Finite GHC.Word.Word16
instance Data.Universe.Class.Finite GHC.Word.Word32
instance Data.Universe.Class.Finite GHC.Word.Word64
instance Data.Universe.Class.Finite a => Data.Universe.Class.Finite (GHC.Base.Maybe a)
instance (Data.Universe.Class.Finite a, Data.Universe.Class.Finite b) => Data.Universe.Class.Finite (Data.Either.Either a b)
instance (Data.Universe.Class.Finite a, Data.Universe.Class.Finite b) => Data.Universe.Class.Finite (a, b)
instance (Data.Universe.Class.Finite a, Data.Universe.Class.Finite b, Data.Universe.Class.Finite c) => Data.Universe.Class.Finite (a, b, c)
instance (Data.Universe.Class.Finite a, Data.Universe.Class.Finite b, Data.Universe.Class.Finite c, Data.Universe.Class.Finite d) => Data.Universe.Class.Finite (a, b, c, d)
instance (Data.Universe.Class.Finite a, Data.Universe.Class.Finite b, Data.Universe.Class.Finite c, Data.Universe.Class.Finite d, Data.Universe.Class.Finite e) => Data.Universe.Class.Finite (a, b, c, d, e)
instance Data.Universe.Class.Finite Data.Semigroup.Internal.All
instance Data.Universe.Class.Finite Data.Semigroup.Internal.Any
instance Data.Universe.Class.Finite a => Data.Universe.Class.Finite (Data.Semigroup.Internal.Sum a)
instance Data.Universe.Class.Finite a => Data.Universe.Class.Finite (Data.Semigroup.Internal.Product a)
instance Data.Universe.Class.Finite a => Data.Universe.Class.Finite (Data.Semigroup.Internal.Dual a)
instance Data.Universe.Class.Finite a => Data.Universe.Class.Finite (Data.Monoid.First a)
instance Data.Universe.Class.Finite a => Data.Universe.Class.Finite (Data.Monoid.Last a)
instance (GHC.Classes.Ord a, Data.Universe.Class.Finite a, Data.Universe.Class.Finite b) => Data.Universe.Class.Finite (a -> b)
