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


-- | Instances of standard classes that are made possible by enumerations
--   
--   For example this package provides a <tt>Eq (a -&gt; b)</tt> instance:
--   
--   <pre>
--   instance (Finite a, Eq b) =&gt; Eq (a -&gt; b) where
--   f == g = and [f x == g x | x &lt;- universeF]
--   </pre>
@package universe-reverse-instances
@version 1.1.2

module Data.Universe.Instances.Eq
class Eq a
(==) :: Eq a => a -> a -> Bool
(/=) :: Eq a => a -> a -> Bool
instance (Data.Universe.Class.Finite a, GHC.Classes.Eq a) => GHC.Classes.Eq (Data.Semigroup.Internal.Endo a)
instance (Data.Universe.Class.Finite a, GHC.Classes.Eq b) => GHC.Classes.Eq (a -> b)

module Data.Universe.Instances.Ord
class Eq a => Ord a
compare :: Ord a => a -> a -> Ordering
(<) :: Ord a => a -> a -> Bool
(<=) :: Ord a => a -> a -> Bool
(>) :: Ord a => a -> a -> Bool
(>=) :: Ord a => a -> a -> Bool
max :: Ord a => a -> a -> a
min :: Ord a => a -> a -> a
instance (Data.Universe.Class.Finite a, GHC.Classes.Ord a) => GHC.Classes.Ord (Data.Semigroup.Internal.Endo a)
instance (Data.Universe.Class.Finite a, GHC.Classes.Ord b) => GHC.Classes.Ord (a -> b)


-- | A <a>Read</a> instance for functions, given the input is <a>Finite</a>
--   and <a>Ord</a> and both the input and output are <a>Read</a>.
module Data.Universe.Instances.Read
instance (Data.Universe.Class.Finite a, GHC.Classes.Ord a, GHC.Read.Read a) => GHC.Read.Read (Data.Semigroup.Internal.Endo a)
instance (Data.Universe.Class.Finite a, GHC.Classes.Ord a, GHC.Read.Read a, GHC.Read.Read b) => GHC.Read.Read (a -> b)


-- | A <a>Show</a> instance for functions, given the input is <a>Finite</a>
--   and both the input and output are <a>Show</a>.
module Data.Universe.Instances.Show
instance (Data.Universe.Class.Finite a, GHC.Show.Show a) => GHC.Show.Show (Data.Semigroup.Internal.Endo a)
instance (Data.Universe.Class.Finite a, GHC.Show.Show a, GHC.Show.Show b) => GHC.Show.Show (a -> b)


-- | A <a>Foldable</a> instance for functions, given the input is
--   <a>Finite</a>, and a <a>Traversable</a> instance for functions, given
--   the input is <a>Ord</a> and <a>Finite</a>.
module Data.Universe.Instances.Traversable
instance Data.Universe.Class.Finite e => Data.Foldable.Foldable ((->) e)
instance (GHC.Classes.Ord e, Data.Universe.Class.Finite e) => Data.Traversable.Traversable ((->) e)
