-- 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.6.2 -- | The lazy AccumT monad transformer, which adds accumulation -- capabilities (such as declarations or document patches) to a given -- monad. -- -- This monad transformer provides append-only accumulation during the -- computation. For more general access, use -- Control.Monad.Trans.State instead. module Control.Monad.Trans.Accum -- | An accumulation monad parameterized by the type w of output -- to accumulate. -- -- The return function produces the output mempty, while -- >>= combines the outputs of the subcomputations using -- mappend. type Accum w = AccumT w Identity -- | Construct an accumulation computation from a (result, output) pair. -- (The inverse of runAccum.) accum :: (Monad m) => (w -> (a, w)) -> AccumT w m a -- | Unwrap an accumulation computation as a (result, output) pair. (The -- inverse of accum.) runAccum :: Accum w a -> w -> (a, w) -- | Extract the output from an accumulation computation. -- -- execAccum :: Accum w a -> w -> w -- | Evaluate an accumulation computation with the given initial output -- history and return the final value, discarding the final output. -- -- evalAccum :: (Monoid w) => Accum w a -> w -> a -- | Map both the return value and output of a computation using the given -- function. -- -- mapAccum :: ((a, w) -> (b, w)) -> Accum w a -> Accum w b -- | An accumulation monad parameterized by: -- -- -- -- The return function produces the output mempty, while -- >>= combines the outputs of the subcomputations using -- mappend. -- -- This monad transformer is similar to both state and writer monad -- transformers. Thus it can be seen as -- -- newtype AccumT w m a AccumT :: (w -> m (a, w)) -> AccumT w m a -- | Unwrap an accumulation computation. runAccumT :: AccumT w m a -> w -> m (a, w) -- | Extract the output from an accumulation computation. -- -- execAccumT :: (Monad m) => AccumT w m a -> w -> m w -- | Evaluate an accumulation computation with the given initial output -- history and return the final value, discarding the final output. -- -- evalAccumT :: (Monad m, Monoid w) => AccumT w m a -> w -> m a -- | Map both the return value and output of a computation using the given -- function. -- -- mapAccumT :: (m (a, w) -> n (b, w)) -> AccumT w m a -> AccumT w n b -- | look is an action that fetches all the previously -- accumulated output. look :: (Monoid w, Monad m) => AccumT w m w -- | look is an action that retrieves a function of the -- previously accumulated output. looks :: (Monoid w, Monad m) => (w -> a) -> AccumT w m a -- | add w is an action that produces the output -- w. add :: (Monad m) => w -> AccumT w m () -- | Uniform lifting of a callCC operation to the new monad. This -- version rolls back to the original output history on entering the -- continuation. liftCallCC :: CallCC m (a, w) (b, w) -> CallCC (AccumT w m) a b -- | In-situ lifting of a callCC operation to the new monad. This -- version uses the current output history on entering the continuation. -- It does not satisfy the uniformity property (see -- Control.Monad.Signatures). liftCallCC' :: CallCC m (a, w) (b, w) -> CallCC (AccumT w m) a b -- | Lift a catchE operation to the new monad. liftCatch :: Catch e m (a, w) -> Catch e (AccumT w m) a -- | Lift a listen operation to the new monad. liftListen :: (Monad m) => Listen w m (a, s) -> Listen w (AccumT s m) a -- | Lift a pass operation to the new monad. liftPass :: (Monad m) => Pass w m (a, s) -> Pass w (AccumT s m) a -- | Convert a read-only computation into an accumulation computation. readerToAccumT :: (Functor m, Monoid w) => ReaderT w m a -> AccumT w m a -- | Convert a writer computation into an accumulation computation. writerToAccumT :: WriterT w m a -> AccumT w m a -- | Convert an accumulation (append-only) computation into a fully -- stateful computation. accumToStateT :: (Functor m, Monoid s) => AccumT s m a -> StateT s m a instance GHC.Base.Functor m => GHC.Base.Functor (Control.Monad.Trans.Accum.AccumT w m) instance (GHC.Base.Monoid w, GHC.Base.Functor m, GHC.Base.Monad m) => GHC.Base.Applicative (Control.Monad.Trans.Accum.AccumT w m) instance (GHC.Base.Monoid w, GHC.Base.Functor m, GHC.Base.MonadPlus m) => GHC.Base.Alternative (Control.Monad.Trans.Accum.AccumT w m) instance (GHC.Base.Monoid w, GHC.Base.Functor m, GHC.Base.Monad m) => GHC.Base.Monad (Control.Monad.Trans.Accum.AccumT w m) instance (GHC.Base.Monoid w, Control.Monad.Fail.MonadFail m) => Control.Monad.Fail.MonadFail (Control.Monad.Trans.Accum.AccumT w m) instance (GHC.Base.Monoid w, GHC.Base.Functor m, GHC.Base.MonadPlus m) => GHC.Base.MonadPlus (Control.Monad.Trans.Accum.AccumT w m) instance (GHC.Base.Monoid w, GHC.Base.Functor m, Control.Monad.Fix.MonadFix m) => Control.Monad.Fix.MonadFix (Control.Monad.Trans.Accum.AccumT w m) instance GHC.Base.Monoid w => Control.Monad.Trans.Class.MonadTrans (Control.Monad.Trans.Accum.AccumT w) instance (GHC.Base.Monoid w, GHC.Base.Functor m, Control.Monad.IO.Class.MonadIO m) => Control.Monad.IO.Class.MonadIO (Control.Monad.Trans.Accum.AccumT w m) -- | Backports orphan instances which are not provided by other modules in -- transformers-compat. module Control.Monad.Trans.Instances instance GHC.Base.Monad m => GHC.Base.Monad (Data.Functor.Reverse.Reverse m) instance Control.Monad.Fail.MonadFail m => Control.Monad.Fail.MonadFail (Data.Functor.Reverse.Reverse m) instance GHC.Base.MonadPlus m => GHC.Base.MonadPlus (Data.Functor.Reverse.Reverse m) instance Data.Bifoldable.Bifoldable Data.Functor.Constant.Constant instance Data.Bitraversable.Bitraversable Data.Functor.Constant.Constant instance forall k a (b :: k). Data.Semigroup.Semigroup a => Data.Semigroup.Semigroup (Data.Functor.Constant.Constant a b) -- | Selection monad transformer, modelling search algorithms. -- -- module Control.Monad.Trans.Select -- | Selection monad. type Select r = SelectT r Identity -- | Constructor for computations in the selection monad. select :: ((a -> r) -> a) -> Select r a -- | Runs a Select computation with a function for evaluating -- answers to select a particular answer. (The inverse of select.) runSelect :: Select r a -> (a -> r) -> a -- | Apply a function to transform the result of a selection computation. -- -- mapSelect :: (a -> a) -> Select r a -> Select r a -- | Selection monad transformer. -- -- SelectT is not a functor on the category of monads, and many -- operations cannot be lifted through it. newtype SelectT r m a SelectT :: ((a -> m r) -> m a) -> SelectT r m a -- | Runs a SelectT computation with a function for evaluating -- answers to select a particular answer. (The inverse of select.) runSelectT :: SelectT r m a -> (a -> m r) -> m a -- | Apply a function to transform the result of a selection computation. -- This has a more restricted type than the map operations for -- other monad transformers, because SelectT does not define a -- functor in the category of monads. -- -- mapSelectT :: (m a -> m a) -> SelectT r m a -> SelectT r m a -- | Convert a selection computation to a continuation-passing computation. selectToContT :: (Monad m) => SelectT r m a -> ContT r m a -- | Deprecated name for selectToContT. -- | Deprecated: Use selectToContT instead selectToCont :: (Monad m) => SelectT r m a -> ContT r m a instance GHC.Base.Functor m => GHC.Base.Functor (Control.Monad.Trans.Select.SelectT r m) instance (GHC.Base.Functor m, GHC.Base.Monad m) => GHC.Base.Applicative (Control.Monad.Trans.Select.SelectT r m) instance (GHC.Base.Functor m, GHC.Base.MonadPlus m) => GHC.Base.Alternative (Control.Monad.Trans.Select.SelectT r m) instance GHC.Base.Monad m => GHC.Base.Monad (Control.Monad.Trans.Select.SelectT r m) instance Control.Monad.Fail.MonadFail m => Control.Monad.Fail.MonadFail (Control.Monad.Trans.Select.SelectT r m) instance GHC.Base.MonadPlus m => GHC.Base.MonadPlus (Control.Monad.Trans.Select.SelectT r m) instance Control.Monad.Trans.Class.MonadTrans (Control.Monad.Trans.Select.SelectT r) instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Control.Monad.Trans.Select.SelectT r m) -- | 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 be checked for -- equality. class 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 be totally ordered. class GEq1 v t => 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 that can be parsed from a -- String. class GRead1 v f gliftReadPrec :: GRead1 v f => Read1Args v a -> ReadPrec (f a) -- | Class of generic representation types that can be parsed from a -- String, and for which the ConType has been determined. class 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 that can be converted to a -- String. class GShow1 v f gliftShowsPrec :: GShow1 v f => Options -> Show1Args v a -> Int -> f a -> ShowS -- | Class of generic representation types that can be converted to a -- String, and for which the ConType has been determined. class 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 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 constructor -- with zero or more fields. class IsNullary f isNullary :: IsNullary f => f a -> Bool instance (GHC.Generics.Constructor c, Data.Functor.Classes.Generic.Internal.GRead1Con v f, Data.Functor.Classes.Generic.Internal.IsNullary f) => Data.Functor.Classes.Generic.Internal.GRead1 v (GHC.Generics.C1 c f) instance (GHC.Generics.Constructor c, Data.Functor.Classes.Generic.Internal.GShow1Con v f, Data.Functor.Classes.Generic.Internal.IsNullary f) => Data.Functor.Classes.Generic.Internal.GShow1 v (GHC.Generics.C1 c f) instance Data.Functor.Classes.Generic.Internal.IsNullary GHC.Generics.U1 instance Data.Functor.Classes.Generic.Internal.IsNullary GHC.Generics.Par1 instance Data.Functor.Classes.Generic.Internal.IsNullary (GHC.Generics.K1 i c) instance Data.Functor.Classes.Generic.Internal.IsNullary f => Data.Functor.Classes.Generic.Internal.IsNullary (GHC.Generics.S1 s f) instance Data.Functor.Classes.Generic.Internal.IsNullary (GHC.Generics.Rec1 f) instance Data.Functor.Classes.Generic.Internal.IsNullary (f GHC.Generics.:*: g) instance Data.Functor.Classes.Generic.Internal.IsNullary (f GHC.Generics.:.: g) instance Data.Functor.Classes.Generic.Internal.IsNullary GHC.Generics.UChar instance Data.Functor.Classes.Generic.Internal.IsNullary GHC.Generics.UDouble instance Data.Functor.Classes.Generic.Internal.IsNullary GHC.Generics.UFloat instance Data.Functor.Classes.Generic.Internal.IsNullary GHC.Generics.UInt instance Data.Functor.Classes.Generic.Internal.IsNullary GHC.Generics.UWord 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.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.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.GRead1 v f => Data.Functor.Classes.Generic.Internal.GRead1 v (GHC.Generics.D1 d f) 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 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.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 -- | 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