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


-- | Higher order versions of Prelude classes
--   
--   Higher order versions of Prelude classes to ease programming with
--   polymorphic recursion and reduce UndecidableInstances
--   
--   See <a>http://flint.cs.yale.edu/trifonov/papers/sqcc.pdf</a> for
--   further discussion of the approach taken here.
@package prelude-extras
@version 0.4.0.3

module Prelude.Extras
class Eq1 f where (==#) = (==)
(==#) :: (Eq1 f, Eq a) => f a -> f a -> Bool
(/=#) :: (Eq1 f, Eq a) => f a -> f a -> Bool
class Eq1 f => Ord1 f where compare1 = compare
compare1 :: (Ord1 f, Ord a) => f a -> f a -> Ordering
(<#) :: (Ord1 f, Ord a) => f a -> f a -> Bool
(<=#) :: (Ord1 f, Ord a) => f a -> f a -> Bool
(>=#) :: (Ord1 f, Ord a) => f a -> f a -> Bool
(>#) :: (Ord1 f, Ord a) => f a -> f a -> Bool
max1 :: (Ord1 f, Ord a) => f a -> f a -> f a
min1 :: (Ord1 f, Ord a) => f a -> f a -> f a
class Show1 f where showsPrec1 = showsPrec showList1 ls s = showList__ shows1 ls s
showsPrec1 :: (Show1 f, Show a) => Int -> f a -> ShowS
showList1 :: (Show1 f, Show a) => [f a] -> ShowS
show1 :: (Show1 f, Show a) => f a -> String
shows1 :: (Show1 f, Show a) => f a -> ShowS
class Read1 f where readsPrec1 = readsPrec readList1 = readPrec_to_S (list readPrec1) 0
readsPrec1 :: (Read1 f, Read a) => Int -> ReadS (f a)
readList1 :: (Read1 f, Read a) => ReadS [f a]
read1 :: (Read1 f, Read a) => String -> f a
reads1 :: (Read1 f, Read a) => ReadS (f a)
readPrec1 :: (Read1 f, Read a) => ReadPrec (f a)
readListPrec1 :: (Read1 f, Read a) => ReadPrec [f a]
readList1Default :: (Read1 f, Read a) => ReadS [f a]
readListPrec1Default :: (Read1 f, Read a) => ReadPrec [f a]
newtype Lift1 f a
Lift1 :: f a -> Lift1 f a
[lower1] :: Lift1 f a -> f a
class Eq2 f where (==##) = (==)
(==##) :: (Eq2 f, Eq a, Eq b) => f a b -> f a b -> Bool
(/=##) :: (Eq2 f, Eq a, Eq b) => f a b -> f a b -> Bool
class Eq2 f => Ord2 f where compare2 = compare
compare2 :: (Ord2 f, Ord a, Ord b) => f a b -> f a b -> Ordering
(<##) :: (Ord2 f, Ord a, Ord b) => f a b -> f a b -> Bool
(<=##) :: (Ord2 f, Ord a, Ord b) => f a b -> f a b -> Bool
(>=##) :: (Ord2 f, Ord a, Ord b) => f a b -> f a b -> Bool
(>##) :: (Ord2 f, Ord a, Ord b) => f a b -> f a b -> Bool
max2 :: (Ord2 f, Ord a, Ord b) => f a b -> f a b -> f a b
min2 :: (Ord2 f, Ord a, Ord b) => f a b -> f a b -> f a b
class Show2 f where showsPrec2 = showsPrec showList2 ls s = showList__ shows2 ls s
showsPrec2 :: (Show2 f, Show a, Show b) => Int -> f a b -> ShowS
showList2 :: (Show2 f, Show a, Show b) => [f a b] -> ShowS
show2 :: (Show2 f, Show a, Show b) => f a b -> String
shows2 :: (Show2 f, Show a, Show b) => f a b -> ShowS
class Read2 f where readsPrec2 = readsPrec readList2 = readPrec_to_S (list readPrec2) 0
readsPrec2 :: (Read2 f, Read a, Read b) => Int -> ReadS (f a b)
readList2 :: (Read2 f, Read a, Read b) => ReadS [f a b]
read2 :: (Read2 f, Read a, Read b) => String -> f a b
reads2 :: (Read2 f, Read a, Read b) => ReadS (f a b)
readPrec2 :: (Read2 f, Read a, Read b) => ReadPrec (f a b)
readListPrec2 :: (Read2 f, Read a, Read b) => ReadPrec [f a b]
readList2Default :: (Read2 f, Read a, Read b) => ReadS [f a b]
readListPrec2Default :: (Read2 f, Read a, Read b) => ReadPrec [f a b]
newtype Lift2 f a b
Lift2 :: f a b -> Lift2 f a b
[lower2] :: Lift2 f a b -> f a b
instance Prelude.Extras.Read2 f => Prelude.Extras.Read2 (Prelude.Extras.Lift2 f)
instance Prelude.Extras.Show2 f => Prelude.Extras.Show2 (Prelude.Extras.Lift2 f)
instance Prelude.Extras.Ord2 f => Prelude.Extras.Ord2 (Prelude.Extras.Lift2 f)
instance Prelude.Extras.Eq2 f => Prelude.Extras.Eq2 (Prelude.Extras.Lift2 f)
instance Data.Traversable.Traversable (f a) => Data.Traversable.Traversable (Prelude.Extras.Lift2 f a)
instance Data.Foldable.Foldable (f a) => Data.Foldable.Foldable (Prelude.Extras.Lift2 f a)
instance GHC.Base.Functor (f a) => GHC.Base.Functor (Prelude.Extras.Lift2 f a)
instance Prelude.Extras.Read1 f => Prelude.Extras.Read1 (Prelude.Extras.Lift1 f)
instance Prelude.Extras.Show1 f => Prelude.Extras.Show1 (Prelude.Extras.Lift1 f)
instance Prelude.Extras.Ord1 f => Prelude.Extras.Ord1 (Prelude.Extras.Lift1 f)
instance Prelude.Extras.Eq1 f => Prelude.Extras.Eq1 (Prelude.Extras.Lift1 f)
instance Data.Traversable.Traversable f => Data.Traversable.Traversable (Prelude.Extras.Lift1 f)
instance Data.Foldable.Foldable f => Data.Foldable.Foldable (Prelude.Extras.Lift1 f)
instance GHC.Base.Functor f => GHC.Base.Functor (Prelude.Extras.Lift1 f)
instance Prelude.Extras.Eq1 f => Prelude.Extras.Eq1 (Data.Monoid.Alt f)
instance Prelude.Extras.Ord1 f => Prelude.Extras.Ord1 (Data.Monoid.Alt f)
instance Prelude.Extras.Eq1 GHC.Base.Maybe
instance GHC.Classes.Eq a => Prelude.Extras.Eq1 (Data.Either.Either a)
instance Prelude.Extras.Eq1 []
instance Prelude.Extras.Eq1 Data.Functor.Identity.Identity
instance Prelude.Extras.Eq1 Data.Proxy.Proxy
instance Prelude.Extras.Eq1 Control.Applicative.ZipList
instance Prelude.Extras.Eq1 Data.Ord.Down
instance GHC.Classes.Eq a => Prelude.Extras.Eq1 (Control.Applicative.Const a)
instance Prelude.Extras.Eq1 Data.Monoid.Dual
instance Prelude.Extras.Eq1 Data.Monoid.Sum
instance Prelude.Extras.Eq1 Data.Monoid.Product
instance Prelude.Extras.Eq1 Data.Monoid.First
instance Prelude.Extras.Eq1 Data.Monoid.Last
instance Prelude.Extras.Eq1 GHC.Ptr.Ptr
instance Prelude.Extras.Eq1 GHC.Ptr.FunPtr
instance Prelude.Extras.Eq1 GHC.MVar.MVar
instance Prelude.Extras.Eq1 GHC.IORef.IORef
instance Prelude.Extras.Eq1 GHC.ForeignPtr.ForeignPtr
instance Prelude.Extras.Eq1 GHC.Conc.Sync.TVar
instance Prelude.Extras.Eq1 Data.Fixed.Fixed
instance Prelude.Extras.Eq1 GHC.Stable.StablePtr
instance Prelude.Extras.Eq1 GHC.Real.Ratio
instance Prelude.Extras.Eq1 Data.Complex.Complex
instance Prelude.Extras.Eq1 Control.Concurrent.Chan.Chan
instance GHC.Classes.Eq a => Prelude.Extras.Eq1 ((,) a)
instance (GHC.Classes.Eq a, GHC.Classes.Eq b) => Prelude.Extras.Eq1 ((,,) a b)
instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c) => Prelude.Extras.Eq1 ((,,,) a b c)
instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c, GHC.Classes.Eq d) => Prelude.Extras.Eq1 ((,,,,) a b c d)
instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c, GHC.Classes.Eq d, GHC.Classes.Eq e) => Prelude.Extras.Eq1 ((,,,,,) a b c d e)
instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c, GHC.Classes.Eq d, GHC.Classes.Eq e, GHC.Classes.Eq f) => Prelude.Extras.Eq1 ((,,,,,,) a b c d e f)
instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c, GHC.Classes.Eq d, GHC.Classes.Eq e, GHC.Classes.Eq f, GHC.Classes.Eq g) => Prelude.Extras.Eq1 ((,,,,,,,) a b c d e f g)
instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c, GHC.Classes.Eq d, GHC.Classes.Eq e, GHC.Classes.Eq f, GHC.Classes.Eq g, GHC.Classes.Eq h) => Prelude.Extras.Eq1 ((,,,,,,,,) a b c d e f g h)
instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c, GHC.Classes.Eq d, GHC.Classes.Eq e, GHC.Classes.Eq f, GHC.Classes.Eq g, GHC.Classes.Eq h, GHC.Classes.Eq i) => Prelude.Extras.Eq1 ((,,,,,,,,,) a b c d e f g h i)
instance Prelude.Extras.Eq2 Data.Either.Either
instance Prelude.Extras.Eq2 Control.Applicative.Const
instance Prelude.Extras.Eq2 (,)
instance GHC.Classes.Eq a => Prelude.Extras.Eq2 ((,,) a)
instance (GHC.Classes.Eq a, GHC.Classes.Eq b) => Prelude.Extras.Eq2 ((,,,) a b)
instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c) => Prelude.Extras.Eq2 ((,,,,) a b c)
instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c, GHC.Classes.Eq d) => Prelude.Extras.Eq2 ((,,,,,) a b c d)
instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c, GHC.Classes.Eq d, GHC.Classes.Eq e) => Prelude.Extras.Eq2 ((,,,,,,) a b c d e)
instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c, GHC.Classes.Eq d, GHC.Classes.Eq e, GHC.Classes.Eq f) => Prelude.Extras.Eq2 ((,,,,,,,) a b c d e f)
instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c, GHC.Classes.Eq d, GHC.Classes.Eq e, GHC.Classes.Eq f, GHC.Classes.Eq g) => Prelude.Extras.Eq2 ((,,,,,,,,) a b c d e f g)
instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c, GHC.Classes.Eq d, GHC.Classes.Eq e, GHC.Classes.Eq f, GHC.Classes.Eq g, GHC.Classes.Eq h) => Prelude.Extras.Eq2 ((,,,,,,,,,) a b c d e f g h)
instance Prelude.Extras.Ord1 GHC.Base.Maybe
instance GHC.Classes.Ord a => Prelude.Extras.Ord1 (Data.Either.Either a)
instance Prelude.Extras.Ord1 []
instance Prelude.Extras.Ord1 Data.Functor.Identity.Identity
instance Prelude.Extras.Ord1 Data.Proxy.Proxy
instance Prelude.Extras.Ord1 Control.Applicative.ZipList
instance Prelude.Extras.Ord1 Data.Ord.Down
instance GHC.Classes.Ord a => Prelude.Extras.Ord1 (Control.Applicative.Const a)
instance Prelude.Extras.Ord1 Data.Monoid.Dual
instance Prelude.Extras.Ord1 Data.Monoid.Sum
instance Prelude.Extras.Ord1 Data.Monoid.Product
instance Prelude.Extras.Ord1 Data.Monoid.First
instance Prelude.Extras.Ord1 Data.Monoid.Last
instance Prelude.Extras.Ord1 GHC.Ptr.Ptr
instance Prelude.Extras.Ord1 GHC.Ptr.FunPtr
instance Prelude.Extras.Ord1 GHC.ForeignPtr.ForeignPtr
instance Prelude.Extras.Ord1 Data.Fixed.Fixed
instance GHC.Classes.Ord a => Prelude.Extras.Ord1 ((,) a)
instance (GHC.Classes.Ord a, GHC.Classes.Ord b) => Prelude.Extras.Ord1 ((,,) a b)
instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c) => Prelude.Extras.Ord1 ((,,,) a b c)
instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c, GHC.Classes.Ord d) => Prelude.Extras.Ord1 ((,,,,) a b c d)
instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c, GHC.Classes.Ord d, GHC.Classes.Ord e) => Prelude.Extras.Ord1 ((,,,,,) a b c d e)
instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c, GHC.Classes.Ord d, GHC.Classes.Ord e, GHC.Classes.Ord f) => Prelude.Extras.Ord1 ((,,,,,,) a b c d e f)
instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c, GHC.Classes.Ord d, GHC.Classes.Ord e, GHC.Classes.Ord f, GHC.Classes.Ord g) => Prelude.Extras.Ord1 ((,,,,,,,) a b c d e f g)
instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c, GHC.Classes.Ord d, GHC.Classes.Ord e, GHC.Classes.Ord f, GHC.Classes.Ord g, GHC.Classes.Ord h) => Prelude.Extras.Ord1 ((,,,,,,,,) a b c d e f g h)
instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c, GHC.Classes.Ord d, GHC.Classes.Ord e, GHC.Classes.Ord f, GHC.Classes.Ord g, GHC.Classes.Ord h, GHC.Classes.Ord i) => Prelude.Extras.Ord1 ((,,,,,,,,,) a b c d e f g h i)
instance Prelude.Extras.Ord2 Data.Either.Either
instance Prelude.Extras.Ord2 Control.Applicative.Const
instance Prelude.Extras.Ord2 (,)
instance GHC.Classes.Ord a => Prelude.Extras.Ord2 ((,,) a)
instance (GHC.Classes.Ord a, GHC.Classes.Ord b) => Prelude.Extras.Ord2 ((,,,) a b)
instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c) => Prelude.Extras.Ord2 ((,,,,) a b c)
instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c, GHC.Classes.Ord d) => Prelude.Extras.Ord2 ((,,,,,) a b c d)
instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c, GHC.Classes.Ord d, GHC.Classes.Ord e) => Prelude.Extras.Ord2 ((,,,,,,) a b c d e)
instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c, GHC.Classes.Ord d, GHC.Classes.Ord e, GHC.Classes.Ord f) => Prelude.Extras.Ord2 ((,,,,,,,) a b c d e f)
instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c, GHC.Classes.Ord d, GHC.Classes.Ord e, GHC.Classes.Ord f, GHC.Classes.Ord g) => Prelude.Extras.Ord2 ((,,,,,,,,) a b c d e f g)
instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c, GHC.Classes.Ord d, GHC.Classes.Ord e, GHC.Classes.Ord f, GHC.Classes.Ord g, GHC.Classes.Ord h) => Prelude.Extras.Ord2 ((,,,,,,,,,) a b c d e f g h)
instance Prelude.Extras.Show1 GHC.Base.Maybe
instance Prelude.Extras.Show1 []
instance GHC.Show.Show a => Prelude.Extras.Show1 (Data.Either.Either a)
instance Prelude.Extras.Show1 Data.Functor.Identity.Identity
instance Prelude.Extras.Show1 Data.Proxy.Proxy
instance Prelude.Extras.Show1 Control.Applicative.ZipList
instance Prelude.Extras.Show1 Data.Ord.Down
instance Prelude.Extras.Show1 f => Prelude.Extras.Show1 (Data.Monoid.Alt f)
instance GHC.Show.Show a => Prelude.Extras.Show1 (Control.Applicative.Const a)
instance Prelude.Extras.Show1 Data.Monoid.Dual
instance Prelude.Extras.Show1 Data.Monoid.Sum
instance Prelude.Extras.Show1 Data.Monoid.Product
instance Prelude.Extras.Show1 Data.Monoid.First
instance Prelude.Extras.Show1 Data.Monoid.Last
instance Prelude.Extras.Show1 GHC.Ptr.Ptr
instance Prelude.Extras.Show1 GHC.Ptr.FunPtr
instance Prelude.Extras.Show1 GHC.ForeignPtr.ForeignPtr
instance Prelude.Extras.Show1 Data.Complex.Complex
instance GHC.Show.Show a => Prelude.Extras.Show1 ((,) a)
instance (GHC.Show.Show a, GHC.Show.Show b) => Prelude.Extras.Show1 ((,,) a b)
instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c) => Prelude.Extras.Show1 ((,,,) a b c)
instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c, GHC.Show.Show d) => Prelude.Extras.Show1 ((,,,,) a b c d)
instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c, GHC.Show.Show d, GHC.Show.Show e) => Prelude.Extras.Show1 ((,,,,,) a b c d e)
instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c, GHC.Show.Show d, GHC.Show.Show e, GHC.Show.Show f) => Prelude.Extras.Show1 ((,,,,,,) a b c d e f)
instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c, GHC.Show.Show d, GHC.Show.Show e, GHC.Show.Show f, GHC.Show.Show g) => Prelude.Extras.Show1 ((,,,,,,,) a b c d e f g)
instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c, GHC.Show.Show d, GHC.Show.Show e, GHC.Show.Show f, GHC.Show.Show g, GHC.Show.Show h) => Prelude.Extras.Show1 ((,,,,,,,,) a b c d e f g h)
instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c, GHC.Show.Show d, GHC.Show.Show e, GHC.Show.Show f, GHC.Show.Show g, GHC.Show.Show h, GHC.Show.Show i) => Prelude.Extras.Show1 ((,,,,,,,,,) a b c d e f g h i)
instance Prelude.Extras.Show2 Data.Either.Either
instance Prelude.Extras.Show2 Control.Applicative.Const
instance Prelude.Extras.Show2 (,)
instance GHC.Show.Show a => Prelude.Extras.Show2 ((,,) a)
instance (GHC.Show.Show a, GHC.Show.Show b) => Prelude.Extras.Show2 ((,,,) a b)
instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c) => Prelude.Extras.Show2 ((,,,,) a b c)
instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c, GHC.Show.Show d) => Prelude.Extras.Show2 ((,,,,,) a b c d)
instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c, GHC.Show.Show d, GHC.Show.Show e) => Prelude.Extras.Show2 ((,,,,,,) a b c d e)
instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c, GHC.Show.Show d, GHC.Show.Show e, GHC.Show.Show f) => Prelude.Extras.Show2 ((,,,,,,,) a b c d e f)
instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c, GHC.Show.Show d, GHC.Show.Show e, GHC.Show.Show f, GHC.Show.Show g) => Prelude.Extras.Show2 ((,,,,,,,,) a b c d e f g)
instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c, GHC.Show.Show d, GHC.Show.Show e, GHC.Show.Show f, GHC.Show.Show g, GHC.Show.Show h) => Prelude.Extras.Show2 ((,,,,,,,,,) a b c d e f g h)
instance Prelude.Extras.Read1 []
instance Prelude.Extras.Read1 GHC.Base.Maybe
instance GHC.Read.Read a => Prelude.Extras.Read1 (Data.Either.Either a)
instance Prelude.Extras.Read1 Data.Functor.Identity.Identity
instance Prelude.Extras.Read1 f => Prelude.Extras.Read1 (Data.Monoid.Alt f)
instance Prelude.Extras.Read1 Data.Proxy.Proxy
instance Prelude.Extras.Read1 Control.Applicative.ZipList
instance Prelude.Extras.Read1 Data.Ord.Down
instance GHC.Read.Read a => Prelude.Extras.Read1 (Control.Applicative.Const a)
instance Prelude.Extras.Read1 Data.Monoid.Dual
instance Prelude.Extras.Read1 Data.Monoid.Sum
instance Prelude.Extras.Read1 Data.Monoid.Product
instance Prelude.Extras.Read1 Data.Monoid.First
instance Prelude.Extras.Read1 Data.Monoid.Last
instance Prelude.Extras.Read1 Data.Complex.Complex
instance GHC.Read.Read a => Prelude.Extras.Read1 ((,) a)
instance (GHC.Read.Read a, GHC.Read.Read b) => Prelude.Extras.Read1 ((,,) a b)
instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c) => Prelude.Extras.Read1 ((,,,) a b c)
instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c, GHC.Read.Read d) => Prelude.Extras.Read1 ((,,,,) a b c d)
instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c, GHC.Read.Read d, GHC.Read.Read e) => Prelude.Extras.Read1 ((,,,,,) a b c d e)
instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c, GHC.Read.Read d, GHC.Read.Read e, GHC.Read.Read f) => Prelude.Extras.Read1 ((,,,,,,) a b c d e f)
instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c, GHC.Read.Read d, GHC.Read.Read e, GHC.Read.Read f, GHC.Read.Read g) => Prelude.Extras.Read1 ((,,,,,,,) a b c d e f g)
instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c, GHC.Read.Read d, GHC.Read.Read e, GHC.Read.Read f, GHC.Read.Read g, GHC.Read.Read h) => Prelude.Extras.Read1 ((,,,,,,,,) a b c d e f g h)
instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c, GHC.Read.Read d, GHC.Read.Read e, GHC.Read.Read f, GHC.Read.Read g, GHC.Read.Read h, GHC.Read.Read i) => Prelude.Extras.Read1 ((,,,,,,,,,) a b c d e f g h i)
instance Prelude.Extras.Read2 Data.Either.Either
instance Prelude.Extras.Read2 Control.Applicative.Const
instance Prelude.Extras.Read2 (,)
instance GHC.Read.Read a => Prelude.Extras.Read2 ((,,) a)
instance (GHC.Read.Read a, GHC.Read.Read b) => Prelude.Extras.Read2 ((,,,) a b)
instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c) => Prelude.Extras.Read2 ((,,,,) a b c)
instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c, GHC.Read.Read d) => Prelude.Extras.Read2 ((,,,,,) a b c d)
instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c, GHC.Read.Read d, GHC.Read.Read e) => Prelude.Extras.Read2 ((,,,,,,) a b c d e)
instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c, GHC.Read.Read d, GHC.Read.Read e, GHC.Read.Read f) => Prelude.Extras.Read2 ((,,,,,,,) a b c d e f)
instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c, GHC.Read.Read d, GHC.Read.Read e, GHC.Read.Read f, GHC.Read.Read g) => Prelude.Extras.Read2 ((,,,,,,,,) a b c d e f g)
instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c, GHC.Read.Read d, GHC.Read.Read e, GHC.Read.Read f, GHC.Read.Read g, GHC.Read.Read h) => Prelude.Extras.Read2 ((,,,,,,,,,) a b c d e f g h)
instance (Prelude.Extras.Eq1 f, GHC.Classes.Eq a) => GHC.Classes.Eq (Prelude.Extras.Lift1 f a)
instance (Prelude.Extras.Ord1 f, GHC.Classes.Ord a) => GHC.Classes.Ord (Prelude.Extras.Lift1 f a)
instance (Prelude.Extras.Show1 f, GHC.Show.Show a) => GHC.Show.Show (Prelude.Extras.Lift1 f a)
instance (Prelude.Extras.Read1 f, GHC.Read.Read a) => GHC.Read.Read (Prelude.Extras.Lift1 f a)
instance (Prelude.Extras.Eq2 f, GHC.Classes.Eq a) => Prelude.Extras.Eq1 (Prelude.Extras.Lift2 f a)
instance (Prelude.Extras.Ord2 f, GHC.Classes.Ord a) => Prelude.Extras.Ord1 (Prelude.Extras.Lift2 f a)
instance (Prelude.Extras.Show2 f, GHC.Show.Show a) => Prelude.Extras.Show1 (Prelude.Extras.Lift2 f a)
instance (Prelude.Extras.Read2 f, GHC.Read.Read a) => Prelude.Extras.Read1 (Prelude.Extras.Lift2 f a)
instance (Prelude.Extras.Eq2 f, GHC.Classes.Eq a, GHC.Classes.Eq b) => GHC.Classes.Eq (Prelude.Extras.Lift2 f a b)
instance (Prelude.Extras.Ord2 f, GHC.Classes.Ord a, GHC.Classes.Ord b) => GHC.Classes.Ord (Prelude.Extras.Lift2 f a b)
instance (Prelude.Extras.Show2 f, GHC.Show.Show a, GHC.Show.Show b) => GHC.Show.Show (Prelude.Extras.Lift2 f a b)
instance (Prelude.Extras.Read2 f, GHC.Read.Read a, GHC.Read.Read b) => GHC.Read.Read (Prelude.Extras.Lift2 f a b)
