-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | A small compatibility shim for the transformers library
--
-- This package includes backported versions of types that were added to
-- transformers in transformers 0.3, 0.4, and 0.5 for users who need
-- strict transformers 0.2 or 0.3 compatibility to run on old versions of
-- the platform, but also need those types.
--
-- Those users should be able to just depend on transformers >=
-- 0.2 and transformers-compat >= 0.3.
--
-- Note: missing methods are not supplied, but this at least permits the
-- types to be used.
@package transformers-compat
@version 0.7.2
-- | Backports orphan instances which are not provided by other modules in
-- transformers-compat.
module Control.Monad.Trans.Instances
instance (Data.Data.Data a, Data.Data.Data b) => Data.Data.Data (Data.Functor.Constant.Constant a b)
instance forall k a (b :: k). GHC.Generics.Generic (Data.Functor.Constant.Constant a b)
instance GHC.Generics.Generic1 (Data.Functor.Constant.Constant a)
instance forall k (r :: k) (m :: k -> *) a. GHC.Generics.Generic (Control.Monad.Trans.Cont.ContT r m a)
instance forall k (f :: k -> *) (a :: k). GHC.Generics.Generic (Control.Monad.Trans.Identity.IdentityT f a)
instance forall k (f :: k -> *). GHC.Generics.Generic1 (Control.Monad.Trans.Identity.IdentityT f)
instance GHC.Generics.Generic (Control.Monad.Trans.Maybe.MaybeT m a)
instance GHC.Base.Functor m => GHC.Generics.Generic1 (Control.Monad.Trans.Maybe.MaybeT m)
instance GHC.Generics.Generic (Control.Monad.Trans.RWS.Lazy.RWST r w s m a)
instance GHC.Generics.Generic (Control.Monad.Trans.RWS.Strict.RWST r w s m a)
instance GHC.Generics.Generic (Control.Monad.Trans.Reader.ReaderT r m a)
instance GHC.Generics.Generic1 (Control.Monad.Trans.Reader.ReaderT r m)
instance GHC.Generics.Generic (Control.Monad.Trans.State.Lazy.StateT s m a)
instance GHC.Generics.Generic (Control.Monad.Trans.State.Strict.StateT s m a)
instance GHC.Generics.Generic (Control.Monad.Trans.Writer.Lazy.WriterT w m a)
instance GHC.Generics.Generic (Control.Monad.Trans.Writer.Strict.WriterT w m a)
instance forall k (f :: k -> *) (a :: k). GHC.Generics.Generic (Control.Applicative.Backwards.Backwards f a)
instance forall k (f :: k -> *). GHC.Generics.Generic1 (Control.Applicative.Backwards.Backwards f)
instance GHC.Generics.Generic (Control.Applicative.Lift.Lift f a)
instance GHC.Generics.Generic1 (Control.Applicative.Lift.Lift f)
instance forall k (f :: k -> *) (a :: k). GHC.Generics.Generic (Data.Functor.Reverse.Reverse f a)
instance forall k (f :: k -> *). GHC.Generics.Generic1 (Data.Functor.Reverse.Reverse f)
instance GHC.Generics.Generic (Control.Monad.Trans.Except.ExceptT e m a)
instance GHC.Base.Functor m => GHC.Generics.Generic1 (Control.Monad.Trans.Except.ExceptT e m)
instance GHC.Generics.Generic (Control.Monad.Trans.Accum.AccumT w m a)
instance GHC.Generics.Generic (Control.Monad.Trans.Select.SelectT w m a)
-- | Internal functionality for Data.Functor.Classes.Generic.
--
-- This is an internal module and, as such, the API is not guaranteed to
-- remain the same between any given release.
module Data.Functor.Classes.Generic.Internal
-- | Options that further configure how the functions in
-- Data.Functor.Classes.Generic should behave.
newtype Options
Options :: Bool -> Options
-- | If True, a default Show1 implementation will show hash
-- signs (#) when showing unlifted types.
[ghc8ShowBehavior] :: Options -> Bool
-- | Options that match the behavior of the installed version of GHC.
defaultOptions :: Options
-- | Options that match the behavior of the most recent GHC release.
latestGHCOptions :: Options
-- | A sensible default liftEq implementation for Generic1
-- instances.
liftEqDefault :: (GEq1 NonV4 (Rep1 f), Generic1 f) => (a -> b -> Bool) -> f a -> f b -> Bool
-- | Like liftEqDefault, but with configurable Options.
-- Currently, the Options have no effect (but this may change in
-- the future).
liftEqOptions :: (GEq1 NonV4 (Rep1 f), Generic1 f) => Options -> (a -> b -> Bool) -> f a -> f b -> Bool
-- | Class of generic representation types that can lift equality through
-- unary type constructors.
class (forall a. Eq a => GEq (t a)) => GEq1 v t
gliftEq :: GEq1 v t => Eq1Args v a b -> t a -> t b -> Bool
-- | An Eq1Args value either stores an Eq a dictionary (for
-- the transformers-0.4 version of Eq1), or it stores the
-- function argument that checks the equality of occurrences of the type
-- parameter (for the non-transformers-0.4 version of
-- Eq1).
data Eq1Args v a b
[V4Eq1Args] :: Eq a => Eq1Args V4 a a
[NonV4Eq1Args] :: (a -> b -> Bool) -> Eq1Args NonV4 a b
-- | A sensible default liftCompare implementation for
-- Generic1 instances.
liftCompareDefault :: (GOrd1 NonV4 (Rep1 f), Generic1 f) => (a -> b -> Ordering) -> f a -> f b -> Ordering
-- | Like liftCompareDefault, but with configurable Options.
-- Currently, the Options have no effect (but this may change in
-- the future).
liftCompareOptions :: (GOrd1 NonV4 (Rep1 f), Generic1 f) => Options -> (a -> b -> Ordering) -> f a -> f b -> Ordering
-- | Class of generic representation types that can lift a total order
-- through unary type constructors.
class (GEq1 v t, forall a. Ord a => GOrd (t a)) => GOrd1 v t
gliftCompare :: GOrd1 v t => Ord1Args v a b -> t a -> t b -> Ordering
-- | An Ord1Args value either stores an Ord a dictionary
-- (for the transformers-0.4 version of Ord1), or it
-- stores the function argument that compares occurrences of the type
-- parameter (for the non-transformers-0.4 version of
-- Ord1).
data Ord1Args v a b
[V4Ord1Args] :: Ord a => Ord1Args V4 a a
[NonV4Ord1Args] :: (a -> b -> Ordering) -> Ord1Args NonV4 a b
-- | A sensible default liftReadsPrec implementation for
-- Generic1 instances.
liftReadsPrecDefault :: (GRead1 NonV4 (Rep1 f), Generic1 f) => (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (f a)
-- | Like liftReadsPrecDefault, but with configurable
-- Options. Currently, the Options have no effect (but this
-- may change in the future).
liftReadsPrecOptions :: (GRead1 NonV4 (Rep1 f), Generic1 f) => Options -> (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (f a)
-- | Class of generic representation types for unary type constructors that
-- can be parsed from a String.
class (forall a. Read a => GRead (f a)) => GRead1 v f
gliftReadPrec :: GRead1 v f => Read1Args v a -> ReadPrec (f a)
-- | Class of generic representation types for unary type constructors that
-- can be parsed from a String, and for which the ConType
-- has been determined.
class (forall a. Read a => GReadCon (f a)) => GRead1Con v f
gliftReadPrecCon :: GRead1Con v f => ConType -> Read1Args v a -> ReadPrec (f a)
-- | A Read1Args value either stores a Read a dictionary
-- (for the transformers-0.4 version of Read1), or it
-- stores the two function arguments that parse occurrences of the type
-- parameter (for the non-transformers-0.4 version of
-- Read1).
data Read1Args v a
[V4Read1Args] :: Read a => Read1Args V4 a
[NonV4Read1Args] :: ReadPrec a -> ReadPrec [a] -> Read1Args NonV4 a
-- | A sensible default liftShowsPrec implementation for
-- Generic1 instances.
liftShowsPrecDefault :: (GShow1 NonV4 (Rep1 f), Generic1 f) => (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> f a -> ShowS
-- | Like liftShowsPrecDefault, but with configurable
-- Options.
liftShowsPrecOptions :: (GShow1 NonV4 (Rep1 f), Generic1 f) => Options -> (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> f a -> ShowS
-- | Class of generic representation types for unary type constructors that
-- can be converted to a String.
class (forall a. Show a => GShow (f a)) => GShow1 v f
gliftShowsPrec :: GShow1 v f => Options -> Show1Args v a -> Int -> f a -> ShowS
-- | Class of generic representation types for unary type constructors that
-- can be converted to a String, and for which the ConType
-- has been determined.
class (forall a. Show a => GShowCon (f a)) => GShow1Con v f
gliftShowsPrecCon :: GShow1Con v f => Options -> ConType -> Show1Args v a -> Int -> f a -> ShowS
-- | A Show1Args value either stores a Show a dictionary
-- (for the transformers-0.4 version of Show1), or it
-- stores the two function arguments that show occurrences of the type
-- parameter (for the non-transformers-0.4 version of
-- Show1).
data Show1Args v a
[V4Show1Args] :: Show a => Show1Args V4 a
[NonV4Show1Args] :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Show1Args NonV4 a
-- | A default (==) implementation for Generic1
-- instances that leverages Eq1.
eqDefault :: (GEq (Rep1 f a), Generic1 f) => f a -> f a -> Bool
-- | Class of generic representation types that can be checked for
-- equality.
class GEq a
geq :: GEq a => a -> a -> Bool
-- | A default compare implementation for Generic1 instances
-- that leverages Ord1.
compareDefault :: (GOrd (Rep1 f a), Generic1 f) => f a -> f a -> Ordering
-- | Class of generic representation types that can be totally ordered.
class GEq a => GOrd a
gcompare :: GOrd a => a -> a -> Ordering
-- | A default readsPrec implementation for Generic1
-- instances that leverages Read1.
readsPrecDefault :: (GRead (Rep1 f a), Generic1 f) => Int -> ReadS (f a)
-- | Class of generic representation types that can be parsed from a
-- String.
class GRead a
greadPrec :: GRead a => ReadPrec a
-- | A default showsPrec implementation for Generic1
-- instances that leverages Show1.
showsPrecDefault :: (GShow (Rep1 f a), Generic1 f) => Int -> f a -> ShowS
-- | Like showsPrecDefault, but with configurable Options.
showsPrecOptions :: (GShow (Rep1 f a), Generic1 f) => Options -> Int -> f a -> ShowS
-- | Class of generic representation types that can be converted to a
-- String.
class GShow a
gshowsPrec :: GShow a => Options -> Int -> a -> ShowS
-- | An adapter newtype, suitable for DerivingVia. Its Eq1,
-- Ord1, Read1, and Show1 instances leverage
-- Generic1-based defaults.
newtype FunctorClassesDefault f a
FunctorClassesDefault :: f a -> FunctorClassesDefault f a
[getFunctorClassesDefault] :: FunctorClassesDefault f a -> f a
-- | A type-level indicator that the transformers-0.4 version of a
-- class method is being derived generically.
data V4
-- | A type-level indicator that the non-transformers-0.4 version
-- of a class method is being derived generically.
data NonV4
-- | Whether a constructor is a record (Rec), a tuple (Tup),
-- is prefix (Pref), or infix (Inf).
data ConType
Rec :: ConType
Tup :: ConType
Pref :: ConType
Inf :: String -> ConType
-- | Class of generic representation types that represent a data type with
-- zero or more constructors.
class IsNullaryDataType f
-- | Returns True if the data type has no constructors.
isNullaryDataType :: IsNullaryDataType f => f a -> Bool
-- | Class of generic representation types that represent a constructor
-- with zero or more fields.
class IsNullaryCon f
-- | Returns True if the constructor has no fields.
isNullaryCon :: IsNullaryCon f => f a -> Bool
instance (GHC.Generics.Constructor c, Data.Functor.Classes.Generic.Internal.GReadCon (f p), Data.Functor.Classes.Generic.Internal.IsNullaryCon f) => Data.Functor.Classes.Generic.Internal.GRead (GHC.Generics.C1 c f p)
instance (GHC.Generics.Constructor c, Data.Functor.Classes.Generic.Internal.GRead1Con v f, Data.Functor.Classes.Generic.Internal.IsNullaryCon f) => Data.Functor.Classes.Generic.Internal.GRead1 v (GHC.Generics.C1 c f)
instance (GHC.Generics.Constructor c, Data.Functor.Classes.Generic.Internal.GShowCon (f p), Data.Functor.Classes.Generic.Internal.IsNullaryCon f) => Data.Functor.Classes.Generic.Internal.GShow (GHC.Generics.C1 c f p)
instance (GHC.Generics.Constructor c, Data.Functor.Classes.Generic.Internal.GShow1Con v f, Data.Functor.Classes.Generic.Internal.IsNullaryCon f) => Data.Functor.Classes.Generic.Internal.GShow1 v (GHC.Generics.C1 c f)
instance Data.Functor.Classes.Generic.Internal.IsNullaryCon GHC.Generics.U1
instance Data.Functor.Classes.Generic.Internal.IsNullaryCon GHC.Generics.Par1
instance Data.Functor.Classes.Generic.Internal.IsNullaryCon (GHC.Generics.K1 i c)
instance Data.Functor.Classes.Generic.Internal.IsNullaryCon f => Data.Functor.Classes.Generic.Internal.IsNullaryCon (GHC.Generics.S1 s f)
instance Data.Functor.Classes.Generic.Internal.IsNullaryCon (GHC.Generics.Rec1 f)
instance Data.Functor.Classes.Generic.Internal.IsNullaryCon (f GHC.Generics.:*: g)
instance Data.Functor.Classes.Generic.Internal.IsNullaryCon (f GHC.Generics.:.: g)
instance Data.Functor.Classes.Generic.Internal.IsNullaryCon GHC.Generics.UChar
instance Data.Functor.Classes.Generic.Internal.IsNullaryCon GHC.Generics.UDouble
instance Data.Functor.Classes.Generic.Internal.IsNullaryCon GHC.Generics.UFloat
instance Data.Functor.Classes.Generic.Internal.IsNullaryCon GHC.Generics.UInt
instance Data.Functor.Classes.Generic.Internal.IsNullaryCon GHC.Generics.UWord
instance (Data.Functor.Classes.Generic.Internal.GRead (f p), Data.Functor.Classes.Generic.Internal.IsNullaryDataType f) => Data.Functor.Classes.Generic.Internal.GRead (GHC.Generics.D1 d f p)
instance (Data.Functor.Classes.Generic.Internal.GRead1 v f, Data.Functor.Classes.Generic.Internal.IsNullaryDataType f) => Data.Functor.Classes.Generic.Internal.GRead1 v (GHC.Generics.D1 d f)
instance Data.Functor.Classes.Generic.Internal.IsNullaryDataType (f GHC.Generics.:+: g)
instance Data.Functor.Classes.Generic.Internal.IsNullaryDataType (GHC.Generics.C1 c f)
instance Data.Functor.Classes.Generic.Internal.IsNullaryDataType GHC.Generics.V1
instance Data.Functor.Classes.Generic.Internal.GRead1Con v GHC.Generics.U1
instance GHC.Read.Read c => Data.Functor.Classes.Generic.Internal.GRead1Con v (GHC.Generics.K1 i c)
instance (GHC.Generics.Selector s, Data.Functor.Classes.Generic.Internal.GRead1Con v f) => Data.Functor.Classes.Generic.Internal.GRead1Con v (GHC.Generics.S1 s f)
instance (Data.Functor.Classes.Generic.Internal.GRead1Con v f, Data.Functor.Classes.Generic.Internal.GRead1Con v g) => Data.Functor.Classes.Generic.Internal.GRead1Con v (f GHC.Generics.:*: g)
instance Data.Functor.Classes.Generic.Internal.GRead1Con Data.Functor.Classes.Generic.Internal.NonV4 GHC.Generics.Par1
instance Data.Functor.Classes.Read1 f => Data.Functor.Classes.Generic.Internal.GRead1Con Data.Functor.Classes.Generic.Internal.NonV4 (GHC.Generics.Rec1 f)
instance (Data.Functor.Classes.Read1 f, Data.Functor.Classes.Generic.Internal.GRead1Con Data.Functor.Classes.Generic.Internal.NonV4 g) => Data.Functor.Classes.Generic.Internal.GRead1Con Data.Functor.Classes.Generic.Internal.NonV4 (f GHC.Generics.:.: g)
instance Data.Functor.Classes.Generic.Internal.GReadCon (GHC.Generics.U1 p)
instance GHC.Read.Read c => Data.Functor.Classes.Generic.Internal.GReadCon (GHC.Generics.K1 i c p)
instance (GHC.Generics.Selector s, Data.Functor.Classes.Generic.Internal.GReadCon (f p)) => Data.Functor.Classes.Generic.Internal.GReadCon (GHC.Generics.S1 s f p)
instance (Data.Functor.Classes.Generic.Internal.GReadCon (f p), Data.Functor.Classes.Generic.Internal.GReadCon (g p)) => Data.Functor.Classes.Generic.Internal.GReadCon ((GHC.Generics.:*:) f g p)
instance GHC.Read.Read p => Data.Functor.Classes.Generic.Internal.GReadCon (GHC.Generics.Par1 p)
instance (Data.Functor.Classes.Read1 f, GHC.Read.Read p) => Data.Functor.Classes.Generic.Internal.GReadCon (GHC.Generics.Rec1 f p)
instance (Data.Functor.Classes.Read1 f, Data.Functor.Classes.Generic.Internal.GReadCon (g p)) => Data.Functor.Classes.Generic.Internal.GReadCon ((GHC.Generics.:.:) f g p)
instance Data.Functor.Classes.Generic.Internal.GShow1Con v GHC.Generics.U1
instance GHC.Show.Show c => Data.Functor.Classes.Generic.Internal.GShow1Con v (GHC.Generics.K1 i c)
instance (GHC.Generics.Selector s, Data.Functor.Classes.Generic.Internal.GShow1Con v f) => Data.Functor.Classes.Generic.Internal.GShow1Con v (GHC.Generics.S1 s f)
instance (Data.Functor.Classes.Generic.Internal.GShow1Con v f, Data.Functor.Classes.Generic.Internal.GShow1Con v g) => Data.Functor.Classes.Generic.Internal.GShow1Con v (f GHC.Generics.:*: g)
instance Data.Functor.Classes.Generic.Internal.GShow1Con Data.Functor.Classes.Generic.Internal.NonV4 GHC.Generics.Par1
instance Data.Functor.Classes.Show1 f => Data.Functor.Classes.Generic.Internal.GShow1Con Data.Functor.Classes.Generic.Internal.NonV4 (GHC.Generics.Rec1 f)
instance (Data.Functor.Classes.Show1 f, Data.Functor.Classes.Generic.Internal.GShow1Con Data.Functor.Classes.Generic.Internal.NonV4 g) => Data.Functor.Classes.Generic.Internal.GShow1Con Data.Functor.Classes.Generic.Internal.NonV4 (f GHC.Generics.:.: g)
instance Data.Functor.Classes.Generic.Internal.GShow1Con v GHC.Generics.UChar
instance Data.Functor.Classes.Generic.Internal.GShow1Con v GHC.Generics.UDouble
instance Data.Functor.Classes.Generic.Internal.GShow1Con v GHC.Generics.UFloat
instance Data.Functor.Classes.Generic.Internal.GShow1Con v GHC.Generics.UInt
instance Data.Functor.Classes.Generic.Internal.GShow1Con v GHC.Generics.UWord
instance Data.Functor.Classes.Generic.Internal.GShowCon (GHC.Generics.U1 p)
instance GHC.Show.Show c => Data.Functor.Classes.Generic.Internal.GShowCon (GHC.Generics.K1 i c p)
instance (GHC.Generics.Selector s, Data.Functor.Classes.Generic.Internal.GShowCon (f p)) => Data.Functor.Classes.Generic.Internal.GShowCon (GHC.Generics.S1 s f p)
instance (Data.Functor.Classes.Generic.Internal.GShowCon (f p), Data.Functor.Classes.Generic.Internal.GShowCon (g p)) => Data.Functor.Classes.Generic.Internal.GShowCon ((GHC.Generics.:*:) f g p)
instance GHC.Show.Show p => Data.Functor.Classes.Generic.Internal.GShowCon (GHC.Generics.Par1 p)
instance (Data.Functor.Classes.Show1 f, GHC.Show.Show p) => Data.Functor.Classes.Generic.Internal.GShowCon (GHC.Generics.Rec1 f p)
instance (Data.Functor.Classes.Show1 f, Data.Functor.Classes.Generic.Internal.GShowCon (g p)) => Data.Functor.Classes.Generic.Internal.GShowCon ((GHC.Generics.:.:) f g p)
instance Data.Functor.Classes.Generic.Internal.GShowCon (GHC.Generics.UChar p)
instance Data.Functor.Classes.Generic.Internal.GShowCon (GHC.Generics.UDouble p)
instance Data.Functor.Classes.Generic.Internal.GShowCon (GHC.Generics.UFloat p)
instance Data.Functor.Classes.Generic.Internal.GShowCon (GHC.Generics.UInt p)
instance Data.Functor.Classes.Generic.Internal.GShowCon (GHC.Generics.UWord p)
instance (Data.Functor.Classes.Generic.Internal.GEq1 Data.Functor.Classes.Generic.Internal.NonV4 (GHC.Generics.Rep1 f), GHC.Generics.Generic1 f) => Data.Functor.Classes.Eq1 (Data.Functor.Classes.Generic.Internal.FunctorClassesDefault f)
instance (Data.Functor.Classes.Generic.Internal.GOrd1 Data.Functor.Classes.Generic.Internal.NonV4 (GHC.Generics.Rep1 f), GHC.Generics.Generic1 f) => Data.Functor.Classes.Ord1 (Data.Functor.Classes.Generic.Internal.FunctorClassesDefault f)
instance (Data.Functor.Classes.Generic.Internal.GRead1 Data.Functor.Classes.Generic.Internal.NonV4 (GHC.Generics.Rep1 f), GHC.Generics.Generic1 f) => Data.Functor.Classes.Read1 (Data.Functor.Classes.Generic.Internal.FunctorClassesDefault f)
instance (Data.Functor.Classes.Generic.Internal.GShow1 Data.Functor.Classes.Generic.Internal.NonV4 (GHC.Generics.Rep1 f), GHC.Generics.Generic1 f) => Data.Functor.Classes.Show1 (Data.Functor.Classes.Generic.Internal.FunctorClassesDefault f)
instance (Data.Functor.Classes.Generic.Internal.GEq (GHC.Generics.Rep1 f a), GHC.Generics.Generic1 f) => GHC.Classes.Eq (Data.Functor.Classes.Generic.Internal.FunctorClassesDefault f a)
instance (Data.Functor.Classes.Generic.Internal.GOrd (GHC.Generics.Rep1 f a), GHC.Generics.Generic1 f) => GHC.Classes.Ord (Data.Functor.Classes.Generic.Internal.FunctorClassesDefault f a)
instance (Data.Functor.Classes.Generic.Internal.GRead (GHC.Generics.Rep1 f a), GHC.Generics.Generic1 f) => GHC.Read.Read (Data.Functor.Classes.Generic.Internal.FunctorClassesDefault f a)
instance (Data.Functor.Classes.Generic.Internal.GShow (GHC.Generics.Rep1 f a), GHC.Generics.Generic1 f) => GHC.Show.Show (Data.Functor.Classes.Generic.Internal.FunctorClassesDefault f a)
instance Data.Functor.Classes.Generic.Internal.GShow1 v f => Data.Functor.Classes.Generic.Internal.GShow1 v (GHC.Generics.D1 d f)
instance Data.Functor.Classes.Generic.Internal.GShow1 v GHC.Generics.V1
instance (Data.Functor.Classes.Generic.Internal.GShow1 v f, Data.Functor.Classes.Generic.Internal.GShow1 v g) => Data.Functor.Classes.Generic.Internal.GShow1 v (f GHC.Generics.:+: g)
instance Data.Functor.Classes.Generic.Internal.GShow (f p) => Data.Functor.Classes.Generic.Internal.GShow (GHC.Generics.D1 d f p)
instance Data.Functor.Classes.Generic.Internal.GShow (GHC.Generics.V1 p)
instance (Data.Functor.Classes.Generic.Internal.GShow (f p), Data.Functor.Classes.Generic.Internal.GShow (g p)) => Data.Functor.Classes.Generic.Internal.GShow ((GHC.Generics.:+:) f g p)
instance Data.Functor.Classes.Generic.Internal.GRead1 v GHC.Generics.V1
instance (Data.Functor.Classes.Generic.Internal.GRead1 v f, Data.Functor.Classes.Generic.Internal.GRead1 v g) => Data.Functor.Classes.Generic.Internal.GRead1 v (f GHC.Generics.:+: g)
instance Data.Functor.Classes.Generic.Internal.GRead (GHC.Generics.V1 p)
instance (Data.Functor.Classes.Generic.Internal.GRead (f p), Data.Functor.Classes.Generic.Internal.GRead (g p)) => Data.Functor.Classes.Generic.Internal.GRead ((GHC.Generics.:+:) f g p)
instance GHC.Classes.Ord c => Data.Functor.Classes.Generic.Internal.GOrd1 v (GHC.Generics.K1 i c)
instance (Data.Functor.Classes.Generic.Internal.GOrd1 v f, Data.Functor.Classes.Generic.Internal.GOrd1 v g) => Data.Functor.Classes.Generic.Internal.GOrd1 v (f GHC.Generics.:*: g)
instance (Data.Functor.Classes.Generic.Internal.GOrd1 v f, Data.Functor.Classes.Generic.Internal.GOrd1 v g) => Data.Functor.Classes.Generic.Internal.GOrd1 v (f GHC.Generics.:+: g)
instance Data.Functor.Classes.Generic.Internal.GOrd1 v f => Data.Functor.Classes.Generic.Internal.GOrd1 v (GHC.Generics.M1 i c f)
instance Data.Functor.Classes.Generic.Internal.GOrd1 v GHC.Generics.U1
instance Data.Functor.Classes.Generic.Internal.GOrd1 v GHC.Generics.V1
instance Data.Functor.Classes.Generic.Internal.GOrd1 Data.Functor.Classes.Generic.Internal.NonV4 GHC.Generics.Par1
instance Data.Functor.Classes.Ord1 f => Data.Functor.Classes.Generic.Internal.GOrd1 Data.Functor.Classes.Generic.Internal.NonV4 (GHC.Generics.Rec1 f)
instance (Data.Functor.Classes.Ord1 f, Data.Functor.Classes.Generic.Internal.GOrd1 Data.Functor.Classes.Generic.Internal.NonV4 g) => Data.Functor.Classes.Generic.Internal.GOrd1 Data.Functor.Classes.Generic.Internal.NonV4 (f GHC.Generics.:.: g)
instance Data.Functor.Classes.Generic.Internal.GOrd1 v GHC.Generics.UAddr
instance Data.Functor.Classes.Generic.Internal.GOrd1 v GHC.Generics.UChar
instance Data.Functor.Classes.Generic.Internal.GOrd1 v GHC.Generics.UDouble
instance Data.Functor.Classes.Generic.Internal.GOrd1 v GHC.Generics.UFloat
instance Data.Functor.Classes.Generic.Internal.GOrd1 v GHC.Generics.UInt
instance Data.Functor.Classes.Generic.Internal.GOrd1 v GHC.Generics.UWord
instance GHC.Classes.Ord c => Data.Functor.Classes.Generic.Internal.GOrd (GHC.Generics.K1 i c p)
instance (Data.Functor.Classes.Generic.Internal.GOrd (f p), Data.Functor.Classes.Generic.Internal.GOrd (g p)) => Data.Functor.Classes.Generic.Internal.GOrd ((GHC.Generics.:*:) f g p)
instance (Data.Functor.Classes.Generic.Internal.GOrd (f p), Data.Functor.Classes.Generic.Internal.GOrd (g p)) => Data.Functor.Classes.Generic.Internal.GOrd ((GHC.Generics.:+:) f g p)
instance Data.Functor.Classes.Generic.Internal.GOrd (f p) => Data.Functor.Classes.Generic.Internal.GOrd (GHC.Generics.M1 i c f p)
instance Data.Functor.Classes.Generic.Internal.GOrd (GHC.Generics.U1 p)
instance Data.Functor.Classes.Generic.Internal.GOrd (GHC.Generics.V1 p)
instance GHC.Classes.Ord p => Data.Functor.Classes.Generic.Internal.GOrd (GHC.Generics.Par1 p)
instance (Data.Functor.Classes.Ord1 f, GHC.Classes.Ord p) => Data.Functor.Classes.Generic.Internal.GOrd (GHC.Generics.Rec1 f p)
instance (Data.Functor.Classes.Ord1 f, Data.Functor.Classes.Generic.Internal.GOrd (g p)) => Data.Functor.Classes.Generic.Internal.GOrd ((GHC.Generics.:.:) f g p)
instance Data.Functor.Classes.Generic.Internal.GOrd (GHC.Generics.UAddr p)
instance Data.Functor.Classes.Generic.Internal.GOrd (GHC.Generics.UChar p)
instance Data.Functor.Classes.Generic.Internal.GOrd (GHC.Generics.UDouble p)
instance Data.Functor.Classes.Generic.Internal.GOrd (GHC.Generics.UFloat p)
instance Data.Functor.Classes.Generic.Internal.GOrd (GHC.Generics.UInt p)
instance Data.Functor.Classes.Generic.Internal.GOrd (GHC.Generics.UWord p)
instance GHC.Classes.Eq c => Data.Functor.Classes.Generic.Internal.GEq1 v (GHC.Generics.K1 i c)
instance (Data.Functor.Classes.Generic.Internal.GEq1 v f, Data.Functor.Classes.Generic.Internal.GEq1 v g) => Data.Functor.Classes.Generic.Internal.GEq1 v (f GHC.Generics.:*: g)
instance (Data.Functor.Classes.Generic.Internal.GEq1 v f, Data.Functor.Classes.Generic.Internal.GEq1 v g) => Data.Functor.Classes.Generic.Internal.GEq1 v (f GHC.Generics.:+: g)
instance Data.Functor.Classes.Generic.Internal.GEq1 v f => Data.Functor.Classes.Generic.Internal.GEq1 v (GHC.Generics.M1 i c f)
instance Data.Functor.Classes.Generic.Internal.GEq1 v GHC.Generics.U1
instance Data.Functor.Classes.Generic.Internal.GEq1 v GHC.Generics.V1
instance Data.Functor.Classes.Generic.Internal.GEq1 Data.Functor.Classes.Generic.Internal.NonV4 GHC.Generics.Par1
instance Data.Functor.Classes.Eq1 f => Data.Functor.Classes.Generic.Internal.GEq1 Data.Functor.Classes.Generic.Internal.NonV4 (GHC.Generics.Rec1 f)
instance (Data.Functor.Classes.Eq1 f, Data.Functor.Classes.Generic.Internal.GEq1 Data.Functor.Classes.Generic.Internal.NonV4 g) => Data.Functor.Classes.Generic.Internal.GEq1 Data.Functor.Classes.Generic.Internal.NonV4 (f GHC.Generics.:.: g)
instance Data.Functor.Classes.Generic.Internal.GEq1 v GHC.Generics.UAddr
instance Data.Functor.Classes.Generic.Internal.GEq1 v GHC.Generics.UChar
instance Data.Functor.Classes.Generic.Internal.GEq1 v GHC.Generics.UDouble
instance Data.Functor.Classes.Generic.Internal.GEq1 v GHC.Generics.UFloat
instance Data.Functor.Classes.Generic.Internal.GEq1 v GHC.Generics.UInt
instance Data.Functor.Classes.Generic.Internal.GEq1 v GHC.Generics.UWord
instance GHC.Classes.Eq c => Data.Functor.Classes.Generic.Internal.GEq (GHC.Generics.K1 i c p)
instance (Data.Functor.Classes.Generic.Internal.GEq (f p), Data.Functor.Classes.Generic.Internal.GEq (g p)) => Data.Functor.Classes.Generic.Internal.GEq ((GHC.Generics.:*:) f g p)
instance (Data.Functor.Classes.Generic.Internal.GEq (f p), Data.Functor.Classes.Generic.Internal.GEq (g p)) => Data.Functor.Classes.Generic.Internal.GEq ((GHC.Generics.:+:) f g p)
instance Data.Functor.Classes.Generic.Internal.GEq (f p) => Data.Functor.Classes.Generic.Internal.GEq (GHC.Generics.M1 i c f p)
instance Data.Functor.Classes.Generic.Internal.GEq (GHC.Generics.U1 p)
instance Data.Functor.Classes.Generic.Internal.GEq (GHC.Generics.V1 p)
instance GHC.Classes.Eq p => Data.Functor.Classes.Generic.Internal.GEq (GHC.Generics.Par1 p)
instance (Data.Functor.Classes.Eq1 f, GHC.Classes.Eq p) => Data.Functor.Classes.Generic.Internal.GEq (GHC.Generics.Rec1 f p)
instance (Data.Functor.Classes.Eq1 f, Data.Functor.Classes.Generic.Internal.GEq (g p)) => Data.Functor.Classes.Generic.Internal.GEq ((GHC.Generics.:.:) f g p)
instance Data.Functor.Classes.Generic.Internal.GEq (GHC.Generics.UAddr p)
instance Data.Functor.Classes.Generic.Internal.GEq (GHC.Generics.UChar p)
instance Data.Functor.Classes.Generic.Internal.GEq (GHC.Generics.UDouble p)
instance Data.Functor.Classes.Generic.Internal.GEq (GHC.Generics.UFloat p)
instance Data.Functor.Classes.Generic.Internal.GEq (GHC.Generics.UInt p)
instance Data.Functor.Classes.Generic.Internal.GEq (GHC.Generics.UWord p)
-- | Functions to generically derive Eq1, Ord1, Read1,
-- and Show1 instances from Data.Functor.Classes.
module Data.Functor.Classes.Generic
-- | Options that further configure how the functions in
-- Data.Functor.Classes.Generic should behave.
newtype Options
Options :: Bool -> Options
-- | If True, a default Show1 implementation will show hash
-- signs (#) when showing unlifted types.
[ghc8ShowBehavior] :: Options -> Bool
-- | Options that match the behavior of the installed version of GHC.
defaultOptions :: Options
-- | Options that match the behavior of the most recent GHC release.
latestGHCOptions :: Options
-- | A sensible default liftEq implementation for Generic1
-- instances.
liftEqDefault :: (GEq1 NonV4 (Rep1 f), Generic1 f) => (a -> b -> Bool) -> f a -> f b -> Bool
-- | Like liftEqDefault, but with configurable Options.
-- Currently, the Options have no effect (but this may change in
-- the future).
liftEqOptions :: (GEq1 NonV4 (Rep1 f), Generic1 f) => Options -> (a -> b -> Bool) -> f a -> f b -> Bool
-- | A sensible default liftCompare implementation for
-- Generic1 instances.
liftCompareDefault :: (GOrd1 NonV4 (Rep1 f), Generic1 f) => (a -> b -> Ordering) -> f a -> f b -> Ordering
-- | Like liftCompareDefault, but with configurable Options.
-- Currently, the Options have no effect (but this may change in
-- the future).
liftCompareOptions :: (GOrd1 NonV4 (Rep1 f), Generic1 f) => Options -> (a -> b -> Ordering) -> f a -> f b -> Ordering
-- | A sensible default liftReadsPrec implementation for
-- Generic1 instances.
liftReadsPrecDefault :: (GRead1 NonV4 (Rep1 f), Generic1 f) => (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (f a)
-- | Like liftReadsPrecDefault, but with configurable
-- Options. Currently, the Options have no effect (but this
-- may change in the future).
liftReadsPrecOptions :: (GRead1 NonV4 (Rep1 f), Generic1 f) => Options -> (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (f a)
-- | A sensible default liftShowsPrec implementation for
-- Generic1 instances.
liftShowsPrecDefault :: (GShow1 NonV4 (Rep1 f), Generic1 f) => (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> f a -> ShowS
-- | Like liftShowsPrecDefault, but with configurable
-- Options.
liftShowsPrecOptions :: (GShow1 NonV4 (Rep1 f), Generic1 f) => Options -> (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> f a -> ShowS
-- | An adapter newtype, suitable for DerivingVia. Its Eq1,
-- Ord1, Read1, and Show1 instances leverage
-- Generic1-based defaults.
newtype FunctorClassesDefault f a
FunctorClassesDefault :: f a -> FunctorClassesDefault f a
[getFunctorClassesDefault] :: FunctorClassesDefault f a -> f a