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


-- | Universe instances for types from select extra packages
--   
--   Universe instances for types from select extra packages
@package universe-instances-extended
@version 1.0.0.1

module Data.Universe.Instances.Extended

-- | 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 Data.Void.Void
instance (Data.Functor.Rep.Representable f, Data.Universe.Class.Finite (Data.Functor.Rep.Rep f), GHC.Classes.Ord (Data.Functor.Rep.Rep f), Data.Universe.Class.Universe a) => Data.Universe.Class.Universe (Data.Functor.Rep.Co f a)
instance (Data.Functor.Rep.Representable f, Data.Universe.Class.Finite s, GHC.Classes.Ord s, Data.Universe.Class.Finite (Data.Functor.Rep.Rep f), GHC.Classes.Ord (Data.Functor.Rep.Rep f), Data.Universe.Class.Universe a) => Data.Universe.Class.Universe (Control.Comonad.Trans.Traced.TracedT s f a)
instance Data.Universe.Class.Finite Data.Void.Void
instance (Data.Functor.Rep.Representable f, Data.Universe.Class.Finite (Data.Functor.Rep.Rep f), GHC.Classes.Ord (Data.Functor.Rep.Rep f), Data.Universe.Class.Finite a) => Data.Universe.Class.Finite (Data.Functor.Rep.Co f a)
instance (Data.Functor.Rep.Representable f, Data.Universe.Class.Finite s, GHC.Classes.Ord s, Data.Universe.Class.Finite (Data.Functor.Rep.Rep f), GHC.Classes.Ord (Data.Functor.Rep.Rep f), Data.Universe.Class.Finite a) => Data.Universe.Class.Finite (Control.Comonad.Trans.Traced.TracedT s f a)
