Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Language.Haskell.TH.Lib
Description
Language.Haskell.TH.Lib contains lots of useful helper functions for generating and manipulating Template Haskell terms
Synopsis
- type InfoQ = Q Info
- type ExpQ = Q Exp
- type TExpQ (a :: TYPE r) = Q (TExp a)
- type CodeQ = Code Q
- type DecQ = Q Dec
- type DecsQ = Q [Dec]
- type ConQ = Q Con
- type TypeQ = Q Type
- type KindQ = Q Kind
- type TyLitQ = Q TyLit
- type CxtQ = Q Cxt
- type PredQ = Q Pred
- type DerivClauseQ = Q DerivClause
- type MatchQ = Q Match
- type ClauseQ = Q Clause
- type BodyQ = Q Body
- type GuardQ = Q Guard
- type StmtQ = Q Stmt
- type RangeQ = Q Range
- type SourceStrictnessQ = Q SourceStrictness
- type SourceUnpackednessQ = Q SourceUnpackedness
- type BangQ = Q Bang
- type BangTypeQ = Q BangType
- type VarBangTypeQ = Q VarBangType
- type StrictTypeQ = Q StrictType
- type VarStrictTypeQ = Q VarStrictType
- type FieldExpQ = Q FieldExp
- type PatQ = Q Pat
- type FieldPatQ = Q FieldPat
- type RuleBndrQ = Q RuleBndr
- type TySynEqnQ = Q TySynEqn
- type PatSynDirQ = Q PatSynDir
- type PatSynArgsQ = Q PatSynArgs
- type FamilyResultSigQ = Q FamilyResultSig
- type DerivStrategyQ = Q DerivStrategy
- type TyVarBndrUnit = TyVarBndr ()
- type TyVarBndrSpec = TyVarBndr Specificity
- type TyVarBndrVis = TyVarBndr BndrVis
- intPrimL :: Integer -> Lit
- wordPrimL :: Integer -> Lit
- floatPrimL :: Rational -> Lit
- doublePrimL :: Rational -> Lit
- integerL :: Integer -> Lit
- rationalL :: Rational -> Lit
- charL :: Char -> Lit
- stringL :: String -> Lit
- stringPrimL :: [Word8] -> Lit
- charPrimL :: Char -> Lit
- bytesPrimL :: Bytes -> Lit
- mkBytes :: ForeignPtr Word8 -> Word -> Word -> Bytes
- litP :: Quote m => Lit -> m Pat
- varP :: Quote m => Name -> m Pat
- tupP :: Quote m => [m Pat] -> m Pat
- unboxedTupP :: Quote m => [m Pat] -> m Pat
- unboxedSumP :: Quote m => m Pat -> SumAlt -> SumArity -> m Pat
- conP :: Quote m => Name -> [m Pat] -> m Pat
- uInfixP :: Quote m => m Pat -> Name -> m Pat -> m Pat
- parensP :: Quote m => m Pat -> m Pat
- infixP :: Quote m => m Pat -> Name -> m Pat -> m Pat
- tildeP :: Quote m => m Pat -> m Pat
- bangP :: Quote m => m Pat -> m Pat
- asP :: Quote m => Name -> m Pat -> m Pat
- wildP :: Quote m => m Pat
- recP :: Quote m => Name -> [m FieldPat] -> m Pat
- listP :: Quote m => [m Pat] -> m Pat
- sigP :: Quote m => m Pat -> m Type -> m Pat
- viewP :: Quote m => m Exp -> m Pat -> m Pat
- typeP :: Quote m => m Type -> m Pat
- invisP :: Quote m => m Type -> m Pat
- fieldPat :: Quote m => Name -> m Pat -> m FieldPat
- normalB :: Quote m => m Exp -> m Body
- guardedB :: Quote m => [m (Guard, Exp)] -> m Body
- normalG :: Quote m => m Exp -> m Guard
- normalGE :: Quote m => m Exp -> m Exp -> m (Guard, Exp)
- patG :: Quote m => [m Stmt] -> m Guard
- patGE :: Quote m => [m Stmt] -> m Exp -> m (Guard, Exp)
- match :: Quote m => m Pat -> m Body -> [m Dec] -> m Match
- clause :: Quote m => [m Pat] -> m Body -> [m Dec] -> m Clause
- dyn :: Quote m => String -> m Exp
- varE :: Quote m => Name -> m Exp
- unboundVarE :: Quote m => Name -> m Exp
- labelE :: Quote m => String -> m Exp
- implicitParamVarE :: Quote m => String -> m Exp
- conE :: Quote m => Name -> m Exp
- litE :: Quote m => Lit -> m Exp
- staticE :: Quote m => m Exp -> m Exp
- appE :: Quote m => m Exp -> m Exp -> m Exp
- appTypeE :: Quote m => m Exp -> m Type -> m Exp
- uInfixE :: Quote m => m Exp -> m Exp -> m Exp -> m Exp
- parensE :: Quote m => m Exp -> m Exp
- infixE :: Quote m => Maybe (m Exp) -> m Exp -> Maybe (m Exp) -> m Exp
- infixApp :: Quote m => m Exp -> m Exp -> m Exp -> m Exp
- sectionL :: Quote m => m Exp -> m Exp -> m Exp
- sectionR :: Quote m => m Exp -> m Exp -> m Exp
- lamE :: Quote m => [m Pat] -> m Exp -> m Exp
- lam1E :: Quote m => m Pat -> m Exp -> m Exp
- lamCaseE :: Quote m => [m Match] -> m Exp
- lamCasesE :: Quote m => [m Clause] -> m Exp
- tupE :: Quote m => [m Exp] -> m Exp
- unboxedTupE :: Quote m => [m Exp] -> m Exp
- unboxedSumE :: Quote m => m Exp -> SumAlt -> SumArity -> m Exp
- condE :: Quote m => m Exp -> m Exp -> m Exp -> m Exp
- multiIfE :: Quote m => [m (Guard, Exp)] -> m Exp
- letE :: Quote m => [m Dec] -> m Exp -> m Exp
- caseE :: Quote m => m Exp -> [m Match] -> m Exp
- appsE :: Quote m => [m Exp] -> m Exp
- listE :: Quote m => [m Exp] -> m Exp
- sigE :: Quote m => m Exp -> m Type -> m Exp
- recConE :: Quote m => Name -> [m (Name, Exp)] -> m Exp
- recUpdE :: Quote m => m Exp -> [m (Name, Exp)] -> m Exp
- stringE :: Quote m => String -> m Exp
- fieldExp :: Quote m => Name -> m Exp -> m (Name, Exp)
- getFieldE :: Quote m => m Exp -> String -> m Exp
- projectionE :: Quote m => NonEmpty String -> m Exp
- typedSpliceE :: Quote m => m Exp -> m Exp
- typedBracketE :: Quote m => m Exp -> m Exp
- typeE :: Quote m => m Type -> m Exp
- forallE :: Quote m => [m (TyVarBndr Specificity)] -> m Exp -> m Exp
- forallVisE :: Quote m => [m (TyVarBndr ())] -> m Exp -> m Exp
- constrainedE :: Quote m => [m Exp] -> m Exp -> m Exp
- fromE :: Quote m => m Exp -> m Exp
- fromThenE :: Quote m => m Exp -> m Exp -> m Exp
- fromToE :: Quote m => m Exp -> m Exp -> m Exp
- fromThenToE :: Quote m => m Exp -> m Exp -> m Exp -> m Exp
- arithSeqE :: Quote m => m Range -> m Exp
- fromR :: Quote m => m Exp -> m Range
- fromThenR :: Quote m => m Exp -> m Exp -> m Range
- fromToR :: Quote m => m Exp -> m Exp -> m Range
- fromThenToR :: Quote m => m Exp -> m Exp -> m Exp -> m Range
- doE :: Quote m => [m Stmt] -> m Exp
- mdoE :: Quote m => [m Stmt] -> m Exp
- compE :: Quote m => [m Stmt] -> m Exp
- bindS :: Quote m => m Pat -> m Exp -> m Stmt
- letS :: Quote m => [m Dec] -> m Stmt
- noBindS :: Quote m => m Exp -> m Stmt
- parS :: Quote m => [[m Stmt]] -> m Stmt
- recS :: Quote m => [m Stmt] -> m Stmt
- forallT :: Quote m => [TyVarBndr Specificity] -> m Cxt -> m Type -> m Type
- forallVisT :: Quote m => [m (TyVarBndr ())] -> m Type -> m Type
- varT :: Quote m => Name -> m Type
- conT :: Quote m => Name -> m Type
- appT :: Quote m => m Type -> m Type -> m Type
- appKindT :: Quote m => m Type -> m Kind -> m Type
- arrowT :: Quote m => m Type
- mulArrowT :: Quote m => m Type
- infixT :: Quote m => m Type -> Name -> m Type -> m Type
- uInfixT :: Quote m => m Type -> Name -> m Type -> m Type
- promotedInfixT :: Quote m => m Type -> Name -> m Type -> m Type
- promotedUInfixT :: Quote m => m Type -> Name -> m Type -> m Type
- parensT :: Quote m => m Type -> m Type
- equalityT :: Quote m => m Type
- listT :: Quote m => m Type
- tupleT :: Quote m => Int -> m Type
- unboxedTupleT :: Quote m => Int -> m Type
- unboxedSumT :: Quote m => SumArity -> m Type
- sigT :: Quote m => m Type -> Kind -> m Type
- litT :: Quote m => m TyLit -> m Type
- wildCardT :: Quote m => m Type
- promotedT :: Quote m => Name -> m Type
- promotedTupleT :: Quote m => Int -> m Type
- promotedNilT :: Quote m => m Type
- promotedConsT :: Quote m => m Type
- implicitParamT :: Quote m => String -> m Type -> m Type
- numTyLit :: Quote m => Integer -> m TyLit
- strTyLit :: Quote m => String -> m TyLit
- charTyLit :: Quote m => Char -> m TyLit
- noSourceUnpackedness :: Quote m => m SourceUnpackedness
- sourceNoUnpack :: Quote m => m SourceUnpackedness
- sourceUnpack :: Quote m => m SourceUnpackedness
- noSourceStrictness :: Quote m => m SourceStrictness
- sourceLazy :: Quote m => m SourceStrictness
- sourceStrict :: Quote m => m SourceStrictness
- isStrict :: Quote m => m Strict
- notStrict :: Quote m => m Strict
- unpacked :: Quote m => m Strict
- bang :: Quote m => m SourceUnpackedness -> m SourceStrictness -> m Bang
- bangType :: Quote m => m Bang -> m Type -> m BangType
- varBangType :: Quote m => Name -> m BangType -> m VarBangType
- strictType :: Quote m => m Strict -> m Type -> m StrictType
- varStrictType :: Quote m => Name -> m StrictType -> m VarStrictType
- cxt :: Quote m => [m Pred] -> m Cxt
- classP :: Quote m => Name -> [m Type] -> m Pred
- equalP :: Quote m => m Type -> m Type -> m Pred
- normalC :: Quote m => Name -> [m BangType] -> m Con
- recC :: Quote m => Name -> [m VarBangType] -> m Con
- infixC :: Quote m => m (Bang, Type) -> Name -> m (Bang, Type) -> m Con
- forallC :: Quote m => [TyVarBndr Specificity] -> m Cxt -> m Con -> m Con
- gadtC :: Quote m => [Name] -> [m StrictType] -> m Type -> m Con
- recGadtC :: Quote m => [Name] -> [m VarStrictType] -> m Type -> m Con
- varK :: Name -> Kind
- conK :: Name -> Kind
- tupleK :: Int -> Kind
- arrowK :: Kind
- listK :: Kind
- appK :: Kind -> Kind -> Kind
- starK :: Kind
- constraintK :: Kind
- class DefaultBndrFlag flag where
- defaultBndrFlag :: flag
- plainTV :: DefaultBndrFlag flag => Name -> TyVarBndr flag
- kindedTV :: DefaultBndrFlag flag => Name -> Kind -> TyVarBndr flag
- plainInvisTV :: Quote m => Name -> Specificity -> m (TyVarBndr Specificity)
- kindedInvisTV :: Quote m => Name -> Specificity -> m Kind -> m (TyVarBndr Specificity)
- plainBndrTV :: Quote m => Name -> BndrVis -> m (TyVarBndr BndrVis)
- kindedBndrTV :: Quote m => Name -> BndrVis -> m Kind -> m (TyVarBndr BndrVis)
- specifiedSpec :: Specificity
- inferredSpec :: Specificity
- bndrReq :: BndrVis
- bndrInvis :: BndrVis
- nominalR :: Role
- representationalR :: Role
- phantomR :: Role
- inferR :: Role
- valD :: Quote m => m Pat -> m Body -> [m Dec] -> m Dec
- funD :: Quote m => Name -> [m Clause] -> m Dec
- tySynD :: Quote m => Name -> [TyVarBndr BndrVis] -> m Type -> m Dec
- dataD :: Quote m => m Cxt -> Name -> [TyVarBndr BndrVis] -> Maybe Kind -> [m Con] -> [m DerivClause] -> m Dec
- newtypeD :: Quote m => m Cxt -> Name -> [TyVarBndr BndrVis] -> Maybe Kind -> m Con -> [m DerivClause] -> m Dec
- typeDataD :: Quote m => Name -> [TyVarBndr BndrVis] -> Maybe Kind -> [m Con] -> m Dec
- derivClause :: Quote m => Maybe DerivStrategy -> [m Pred] -> m DerivClause
- data DerivClause = DerivClause (Maybe DerivStrategy) Cxt
- stockStrategy :: Quote m => m DerivStrategy
- anyclassStrategy :: Quote m => m DerivStrategy
- newtypeStrategy :: Quote m => m DerivStrategy
- viaStrategy :: Quote m => m Type -> m DerivStrategy
- data DerivStrategy
- classD :: Quote m => m Cxt -> Name -> [TyVarBndr BndrVis] -> [FunDep] -> [m Dec] -> m Dec
- instanceD :: Quote m => m Cxt -> m Type -> [m Dec] -> m Dec
- instanceWithOverlapD :: Quote m => Maybe Overlap -> m Cxt -> m Type -> [m Dec] -> m Dec
- data Overlap
- = Overlappable
- | Overlapping
- | Overlaps
- | Incoherent
- sigD :: Quote m => Name -> m Type -> m Dec
- kiSigD :: Quote m => Name -> m Kind -> m Dec
- standaloneDerivD :: Quote m => m Cxt -> m Type -> m Dec
- standaloneDerivWithStrategyD :: Quote m => Maybe DerivStrategy -> m Cxt -> m Type -> m Dec
- defaultSigD :: Quote m => Name -> m Type -> m Dec
- roleAnnotD :: Quote m => Name -> [Role] -> m Dec
- dataFamilyD :: Quote m => Name -> [TyVarBndr BndrVis] -> Maybe Kind -> m Dec
- openTypeFamilyD :: Quote m => Name -> [TyVarBndr BndrVis] -> FamilyResultSig -> Maybe InjectivityAnn -> m Dec
- closedTypeFamilyD :: Quote m => Name -> [TyVarBndr BndrVis] -> FamilyResultSig -> Maybe InjectivityAnn -> [m TySynEqn] -> m Dec
- dataInstD :: Quote m => m Cxt -> Name -> [m Type] -> Maybe Kind -> [m Con] -> [m DerivClause] -> m Dec
- newtypeInstD :: Quote m => m Cxt -> Name -> [m Type] -> Maybe Kind -> m Con -> [m DerivClause] -> m Dec
- tySynInstD :: Quote m => m TySynEqn -> m Dec
- tySynEqn :: Quote m => Maybe [TyVarBndr ()] -> m Type -> m Type -> m TySynEqn
- injectivityAnn :: Name -> [Name] -> InjectivityAnn
- noSig :: FamilyResultSig
- kindSig :: Kind -> FamilyResultSig
- tyVarSig :: TyVarBndr () -> FamilyResultSig
- infixLD :: Quote m => Int -> Name -> m Dec
- infixRD :: Quote m => Int -> Name -> m Dec
- infixND :: Quote m => Int -> Name -> m Dec
- defaultD :: Quote m => [m Type] -> m Dec
- cCall :: Callconv
- stdCall :: Callconv
- cApi :: Callconv
- prim :: Callconv
- javaScript :: Callconv
- unsafe :: Safety
- safe :: Safety
- interruptible :: Safety
- forImpD :: Quote m => Callconv -> Safety -> String -> Name -> m Type -> m Dec
- funDep :: [Name] -> [Name] -> FunDep
- ruleVar :: Quote m => Name -> m RuleBndr
- typedRuleVar :: Quote m => Name -> m Type -> m RuleBndr
- valueAnnotation :: Name -> AnnTarget
- typeAnnotation :: Name -> AnnTarget
- moduleAnnotation :: AnnTarget
- pragInlD :: Quote m => Name -> Inline -> RuleMatch -> Phases -> m Dec
- pragSpecD :: Quote m => Name -> m Type -> Phases -> m Dec
- pragSpecInlD :: Quote m => Name -> m Type -> Inline -> Phases -> m Dec
- pragSpecInstD :: Quote m => m Type -> m Dec
- pragRuleD :: Quote m => String -> [m RuleBndr] -> m Exp -> m Exp -> Phases -> m Dec
- pragAnnD :: Quote m => AnnTarget -> m Exp -> m Dec
- pragLineD :: Quote m => Int -> String -> m Dec
- pragCompleteD :: Quote m => [Name] -> Maybe Name -> m Dec
- patSynD :: Quote m => Name -> m PatSynArgs -> m PatSynDir -> m Pat -> m Dec
- patSynSigD :: Quote m => Name -> m Type -> m Dec
- unidir :: Quote m => m PatSynDir
- implBidir :: Quote m => m PatSynDir
- explBidir :: Quote m => [m Clause] -> m PatSynDir
- prefixPatSyn :: Quote m => [Name] -> m PatSynArgs
- infixPatSyn :: Quote m => Name -> Name -> m PatSynArgs
- recordPatSyn :: Quote m => [Name] -> m PatSynArgs
- implicitParamBindD :: Quote m => String -> m Exp -> m Dec
- thisModule :: Q Module
- withDecDoc :: String -> Q Dec -> Q Dec
- withDecsDoc :: String -> Q [Dec] -> Q [Dec]
- funD_doc :: Name -> [Q Clause] -> Maybe String -> [Maybe String] -> Q Dec
- dataD_doc :: Q Cxt -> Name -> [Q (TyVarBndr BndrVis)] -> Maybe (Q Kind) -> [(Q Con, Maybe String, [Maybe String])] -> [Q DerivClause] -> Maybe String -> Q Dec
- newtypeD_doc :: Q Cxt -> Name -> [Q (TyVarBndr BndrVis)] -> Maybe (Q Kind) -> (Q Con, Maybe String, [Maybe String]) -> [Q DerivClause] -> Maybe String -> Q Dec
- typeDataD_doc :: Name -> [Q (TyVarBndr BndrVis)] -> Maybe (Q Kind) -> [(Q Con, Maybe String, [Maybe String])] -> Maybe String -> Q Dec
- dataInstD_doc :: Q Cxt -> Maybe [Q (TyVarBndr ())] -> Q Type -> Maybe (Q Kind) -> [(Q Con, Maybe String, [Maybe String])] -> [Q DerivClause] -> Maybe String -> Q Dec
- newtypeInstD_doc :: Q Cxt -> Maybe [Q (TyVarBndr ())] -> Q Type -> Maybe (Q Kind) -> (Q Con, Maybe String, [Maybe String]) -> [Q DerivClause] -> Maybe String -> Q Dec
- patSynD_doc :: Name -> Q PatSynArgs -> Q PatSynDir -> Q Pat -> Maybe String -> [Maybe String] -> Q Dec
Library functions
Abbreviations
type DerivClauseQ = Q DerivClause #
type SourceStrictnessQ = Q SourceStrictness #
type SourceUnpackednessQ = Q SourceUnpackedness #
type VarBangTypeQ = Q VarBangType #
type StrictTypeQ = Q StrictType #
type VarStrictTypeQ = Q VarStrictType #
type PatSynDirQ = Q PatSynDir #
type PatSynArgsQ = Q PatSynArgs #
type FamilyResultSigQ = Q FamilyResultSig #
type DerivStrategyQ = Q DerivStrategy #
type TyVarBndrUnit = TyVarBndr () #
type TyVarBndrSpec = TyVarBndr Specificity #
type TyVarBndrVis = TyVarBndr BndrVis #
Constructors lifted to Q
Literals
floatPrimL :: Rational -> Lit #
doublePrimL :: Rational -> Lit #
stringPrimL :: [Word8] -> Lit #
bytesPrimL :: Bytes -> Lit #
Create a Bytes datatype representing raw bytes to be embedded into the program/library binary.
Since: template-haskell-2.16.0.0
Patterns
unboxedTupP :: Quote m => [m Pat] -> m Pat #
Pattern Guards
Expressions
unboundVarE :: Quote m => Name -> m Exp #
implicitParamVarE :: Quote m => String -> m Exp #
typedSpliceE :: Quote m => m Exp -> m Exp #
typedBracketE :: Quote m => m Exp -> m Exp #
Ranges
Ranges with more indirection
Statements
Types
unboxedTupleT :: Quote m => Int -> m Type #
unboxedSumT :: Quote m => SumArity -> m Type #
promotedTupleT :: Quote m => Int -> m Type #
promotedNilT :: Quote m => m Type #
promotedConsT :: Quote m => m Type #
Type literals
Strictness
noSourceUnpackedness :: Quote m => m SourceUnpackedness #
sourceNoUnpack :: Quote m => m SourceUnpackedness #
sourceUnpack :: Quote m => m SourceUnpackedness #
noSourceStrictness :: Quote m => m SourceStrictness #
sourceLazy :: Quote m => m SourceStrictness #
sourceStrict :: Quote m => m SourceStrictness #
bang :: Quote m => m SourceUnpackedness -> m SourceStrictness -> m Bang #
varBangType :: Quote m => Name -> m BangType -> m VarBangType #
strictType :: Quote m => m Strict -> m Type -> m StrictType #
varStrictType :: Quote m => Name -> m StrictType -> m VarStrictType #
Class Contexts
Constructors
Kinds
constraintK :: Kind Source #
Type variable binders
class DefaultBndrFlag flag where Source #
Methods
defaultBndrFlag :: flag Source #
Instances
Instances details
plainInvisTV :: Quote m => Name -> Specificity -> m (TyVarBndr Specificity) #
kindedInvisTV :: Quote m => Name -> Specificity -> m Kind -> m (TyVarBndr Specificity) #
Roles
Top Level Declarations
Data
dataD :: Quote m => m Cxt -> Name -> [TyVarBndr BndrVis] -> Maybe Kind -> [m Con] -> [m DerivClause] -> m Dec Source #
newtypeD :: Quote m => m Cxt -> Name -> [TyVarBndr BndrVis] -> Maybe Kind -> m Con -> [m DerivClause] -> m Dec Source #
derivClause :: Quote m => Maybe DerivStrategy -> [m Pred] -> m DerivClause Source #
data DerivClause #
Constructors
Instances
Instances details
Instance details
Defined in GHC.Internal.TH.Syntax
Methods
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DerivClause -> c DerivClause #
gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DerivClause #
toConstr :: DerivClause -> Constr #
dataTypeOf :: DerivClause -> DataType #
dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DerivClause) #
dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DerivClause) #
gmapT :: (forall b. Data b => b -> b) -> DerivClause -> DerivClause #
gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DerivClause -> r #
gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DerivClause -> r #
gmapQ :: (forall d. Data d => d -> u) -> DerivClause -> [u] #
gmapQi :: Int -> (forall d. Data d => d -> u) -> DerivClause -> u #
gmapM :: Monad m => (forall d. Data d => d -> m d) -> DerivClause -> m DerivClause #
gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DerivClause -> m DerivClause #
gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DerivClause -> m DerivClause #
Instance details
Defined in GHC.Internal.TH.Syntax
Associated Types
Instance details
Defined in GHC.Internal.TH.Syntax
Instance details
Defined in GHC.Internal.TH.Syntax
Methods
showsPrec :: Int -> DerivClause -> ShowS #
show :: DerivClause -> String #
showList :: [DerivClause] -> ShowS #
Instance details
Defined in GHC.Internal.TH.Syntax
Instance details
Defined in GHC.Internal.TH.Syntax
Methods
compare :: DerivClause -> DerivClause -> Ordering #
(<) :: DerivClause -> DerivClause -> Bool #
(<=) :: DerivClause -> DerivClause -> Bool #
(>) :: DerivClause -> DerivClause -> Bool #
(>=) :: DerivClause -> DerivClause -> Bool #
max :: DerivClause -> DerivClause -> DerivClause #
min :: DerivClause -> DerivClause -> DerivClause #
Instance details
Defined in GHC.Internal.TH.Lift
Methods
lift :: Quote m => DerivClause -> m Exp #
liftTyped :: forall (m :: Type -> Type). Quote m => DerivClause -> Code m DerivClause #
Instance details
Defined in GHC.Internal.TH.Syntax
stockStrategy :: Quote m => m DerivStrategy #
anyclassStrategy :: Quote m => m DerivStrategy #
newtypeStrategy :: Quote m => m DerivStrategy #
viaStrategy :: Quote m => m Type -> m DerivStrategy #
data DerivStrategy #
Instances
Instances details
Instance details
Defined in GHC.Internal.TH.Syntax
Methods
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DerivStrategy -> c DerivStrategy #
gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DerivStrategy #
toConstr :: DerivStrategy -> Constr #
dataTypeOf :: DerivStrategy -> DataType #
dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DerivStrategy) #
dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DerivStrategy) #
gmapT :: (forall b. Data b => b -> b) -> DerivStrategy -> DerivStrategy #
gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DerivStrategy -> r #
gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DerivStrategy -> r #
gmapQ :: (forall d. Data d => d -> u) -> DerivStrategy -> [u] #
gmapQi :: Int -> (forall d. Data d => d -> u) -> DerivStrategy -> u #
gmapM :: Monad m => (forall d. Data d => d -> m d) -> DerivStrategy -> m DerivStrategy #
gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DerivStrategy -> m DerivStrategy #
gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DerivStrategy -> m DerivStrategy #
Instance details
Defined in GHC.Internal.TH.Syntax
Associated Types
Instance details
Defined in GHC.Internal.TH.Syntax
Instance details
Defined in GHC.Internal.TH.Syntax
Methods
showsPrec :: Int -> DerivStrategy -> ShowS #
show :: DerivStrategy -> String #
showList :: [DerivStrategy] -> ShowS #
Instance details
Defined in GHC.Internal.TH.Syntax
Methods
(==) :: DerivStrategy -> DerivStrategy -> Bool #
(/=) :: DerivStrategy -> DerivStrategy -> Bool #
Instance details
Defined in GHC.Internal.TH.Syntax
Methods
compare :: DerivStrategy -> DerivStrategy -> Ordering #
(<) :: DerivStrategy -> DerivStrategy -> Bool #
(<=) :: DerivStrategy -> DerivStrategy -> Bool #
(>) :: DerivStrategy -> DerivStrategy -> Bool #
(>=) :: DerivStrategy -> DerivStrategy -> Bool #
max :: DerivStrategy -> DerivStrategy -> DerivStrategy #
min :: DerivStrategy -> DerivStrategy -> DerivStrategy #
Instance details
Defined in GHC.Internal.TH.Lift
Methods
lift :: Quote m => DerivStrategy -> m Exp #
liftTyped :: forall (m :: Type -> Type). Quote m => DerivStrategy -> Code m DerivStrategy #
Instance details
Defined in GHC.Internal.TH.Syntax
Class
Instances
Instances details
Instance details
Defined in GHC.Internal.TH.Syntax
Methods
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Overlap -> c Overlap #
gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Overlap #
toConstr :: Overlap -> Constr #
dataTypeOf :: Overlap -> DataType #
dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Overlap) #
dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Overlap) #
gmapT :: (forall b. Data b => b -> b) -> Overlap -> Overlap #
gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Overlap -> r #
gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Overlap -> r #
gmapQ :: (forall d. Data d => d -> u) -> Overlap -> [u] #
gmapQi :: Int -> (forall d. Data d => d -> u) -> Overlap -> u #
gmapM :: Monad m => (forall d. Data d => d -> m d) -> Overlap -> m Overlap #
gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Overlap -> m Overlap #
gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Overlap -> m Overlap #
Instance details
Defined in GHC.Internal.TH.Syntax
Associated Types
Instance details
Defined in GHC.Internal.TH.Syntax
Instance details
Defined in GHC.Internal.TH.Syntax
Instance details
Defined in GHC.Internal.TH.Syntax
Instance details
Defined in GHC.Internal.TH.Syntax
Instance details
Defined in GHC.Internal.TH.Lift
Instance details
Defined in GHC.Internal.TH.Syntax
standaloneDerivWithStrategyD :: Quote m => Maybe DerivStrategy -> m Cxt -> m Type -> m Dec Source #
Role annotations
Type Family / Data Family
openTypeFamilyD :: Quote m => Name -> [TyVarBndr BndrVis] -> FamilyResultSig -> Maybe InjectivityAnn -> m Dec Source #
closedTypeFamilyD :: Quote m => Name -> [TyVarBndr BndrVis] -> FamilyResultSig -> Maybe InjectivityAnn -> [m TySynEqn] -> m Dec Source #
dataInstD :: Quote m => m Cxt -> Name -> [m Type] -> Maybe Kind -> [m Con] -> [m DerivClause] -> m Dec Source #
newtypeInstD :: Quote m => m Cxt -> Name -> [m Type] -> Maybe Kind -> m Con -> [m DerivClause] -> m Dec Source #
tySynInstD :: Quote m => m TySynEqn -> m Dec #
injectivityAnn :: Name -> [Name] -> InjectivityAnn #
kindSig :: Kind -> FamilyResultSig Source #
tyVarSig :: TyVarBndr () -> FamilyResultSig Source #
Fixity
Default declaration
Foreign Function Interface (FFI)
javaScript :: Callconv #
interruptible :: Safety #
Functional dependencies
Pragmas
valueAnnotation :: Name -> AnnTarget #
typeAnnotation :: Name -> AnnTarget #
pragSpecInstD :: Quote m => m Type -> m Dec #
Pattern Synonyms
prefixPatSyn :: Quote m => [Name] -> m PatSynArgs #
infixPatSyn :: Quote m => Name -> Name -> m PatSynArgs #
recordPatSyn :: Quote m => [Name] -> m PatSynArgs #
Implicit Parameters
Reify
thisModule :: Q Module #
Documentation
dataD_doc :: Q Cxt -> Name -> [Q (TyVarBndr BndrVis)] -> Maybe (Q Kind) -> [(Q Con, Maybe String, [Maybe String])] -> [Q DerivClause] -> Maybe String -> Q Dec #
newtypeD_doc :: Q Cxt -> Name -> [Q (TyVarBndr BndrVis)] -> Maybe (Q Kind) -> (Q Con, Maybe String, [Maybe String]) -> [Q DerivClause] -> Maybe String -> Q Dec #
typeDataD_doc :: Name -> [Q (TyVarBndr BndrVis)] -> Maybe (Q Kind) -> [(Q Con, Maybe String, [Maybe String])] -> Maybe String -> Q Dec #
dataInstD_doc :: Q Cxt -> Maybe [Q (TyVarBndr ())] -> Q Type -> Maybe (Q Kind) -> [(Q Con, Maybe String, [Maybe String])] -> [Q DerivClause] -> Maybe String -> Q Dec #