Safe Haskell | Trustworthy |
---|---|
Language | Haskell2010 |
Language.Haskell.TH.Lib.Internal exposes some additional functionality that is used internally in GHC's integration with Template Haskell. This is not a part of the public API, and as such, there are no API guarantees for this module from version to version.
Synopsis
- type TExpQ a = Q (TExp a)
- type CodeQ = Code Q
- type InfoQ = Q Info
- type PatQ = Q Pat
- type FieldPatQ = Q FieldPat
- type ExpQ = Q Exp
- type DecQ = Q Dec
- type DecsQ = Q [Dec]
- type Decs = [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 RuleBndrQ = Q RuleBndr
- type TySynEqnQ = Q TySynEqn
- type PatSynDirQ = Q PatSynDir
- type PatSynArgsQ = Q PatSynArgs
- type FamilyResultSigQ = Q FamilyResultSig
- type DerivStrategyQ = Q DerivStrategy
- type Role = Role
- type InjectivityAnn = InjectivityAnn
- type TyVarBndrUnit = TyVarBndr ()
- type TyVarBndrSpec = TyVarBndr Specificity
- intPrimL :: Integer -> Lit
- wordPrimL :: Integer -> Lit
- floatPrimL :: Rational -> Lit
- doublePrimL :: Rational -> Lit
- integerL :: Integer -> Lit
- charL :: Char -> Lit
- charPrimL :: Char -> Lit
- stringL :: String -> Lit
- stringPrimL :: [Word8] -> Lit
- bytesPrimL :: Bytes -> Lit
- rationalL :: Rational -> Lit
- 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 Type] -> [m Pat] -> m Pat
- infixP :: Quote m => m Pat -> Name -> m Pat -> m Pat
- uInfixP :: Quote m => m Pat -> Name -> m Pat -> m Pat
- parensP :: Quote m => 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
- fieldPat :: Quote m => Name -> m Pat -> m FieldPat
- 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
- 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
- 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
- conE :: Quote m => Name -> m Exp
- litE :: Quote m => Lit -> m Exp
- appE :: Quote m => m Exp -> m Exp -> m Exp
- appTypeE :: Quote m => m Exp -> m Type -> m Exp
- parensE :: Quote m => m Exp -> m Exp
- uInfixE :: Quote m => m Exp -> m Exp -> 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 => [Maybe (m Exp)] -> m Exp
- unboxedTupE :: Quote m => [Maybe (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
- doE :: Quote m => Maybe ModName -> [m Stmt] -> m Exp
- mdoE :: Quote m => Maybe ModName -> [m Stmt] -> m Exp
- compE :: Quote m => [m Stmt] -> m Exp
- arithSeqE :: Quote m => m Range -> 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)
- staticE :: Quote m => m Exp -> m Exp
- unboundVarE :: Quote m => Name -> m Exp
- labelE :: Quote m => String -> m Exp
- implicitParamVarE :: Quote m => String -> m Exp
- getFieldE :: Quote m => m Exp -> String -> m Exp
- projectionE :: Quote m => NonEmpty String -> 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
- valD :: Quote m => m Pat -> m Body -> [m Dec] -> m Dec
- funD :: Quote m => Name -> [m Clause] -> m Dec
- tySynD :: Quote m => Name -> [m (TyVarBndr ())] -> m Type -> m Dec
- dataD :: Quote m => m Cxt -> Name -> [m (TyVarBndr ())] -> Maybe (m Kind) -> [m Con] -> [m DerivClause] -> m Dec
- newtypeD :: Quote m => m Cxt -> Name -> [m (TyVarBndr ())] -> Maybe (m Kind) -> m Con -> [m DerivClause] -> m Dec
- classD :: Quote m => m Cxt -> Name -> [m (TyVarBndr ())] -> [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
- sigD :: Quote m => Name -> m Type -> m Dec
- kiSigD :: Quote m => Name -> m Kind -> m Dec
- forImpD :: Quote m => Callconv -> Safety -> String -> Name -> m Type -> m Dec
- 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
- pragInlD :: Quote m => Name -> Inline -> RuleMatch -> Phases -> m Dec
- pragOpaqueD :: Quote m => Name -> 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 -> Maybe [m (TyVarBndr ())] -> [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
- dataInstD :: Quote m => m Cxt -> Maybe [m (TyVarBndr ())] -> m Type -> Maybe (m Kind) -> [m Con] -> [m DerivClause] -> m Dec
- newtypeInstD :: Quote m => m Cxt -> Maybe [m (TyVarBndr ())] -> m Type -> Maybe (m Kind) -> m Con -> [m DerivClause] -> m Dec
- tySynInstD :: Quote m => m TySynEqn -> m Dec
- dataFamilyD :: Quote m => Name -> [m (TyVarBndr ())] -> Maybe (m Kind) -> m Dec
- openTypeFamilyD :: Quote m => Name -> [m (TyVarBndr ())] -> m FamilyResultSig -> Maybe InjectivityAnn -> m Dec
- closedTypeFamilyD :: Quote m => Name -> [m (TyVarBndr ())] -> m FamilyResultSig -> Maybe InjectivityAnn -> [m TySynEqn] -> m Dec
- roleAnnotD :: Quote m => Name -> [Role] -> m Dec
- standaloneDerivD :: Quote m => m Cxt -> m Type -> m Dec
- standaloneDerivWithStrategyD :: Quote m => Maybe (m DerivStrategy) -> m Cxt -> m Type -> m Dec
- defaultSigD :: Quote m => Name -> m Type -> m Dec
- patSynD :: Quote m => Name -> m PatSynArgs -> m PatSynDir -> m Pat -> m Dec
- patSynSigD :: Quote m => Name -> m Type -> m Dec
- implicitParamBindD :: Quote m => String -> m Exp -> m Dec
- tySynEqn :: Quote m => Maybe [m (TyVarBndr ())] -> m Type -> m Type -> m TySynEqn
- cxt :: Quote m => [m Pred] -> m Cxt
- derivClause :: Quote m => Maybe (m DerivStrategy) -> [m Pred] -> m DerivClause
- stockStrategy :: Quote m => m DerivStrategy
- anyclassStrategy :: Quote m => m DerivStrategy
- newtypeStrategy :: Quote m => m DerivStrategy
- viaStrategy :: Quote m => m Type -> m DerivStrategy
- 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 => [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
- forallT :: Quote m => [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
- 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
- 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
- listT :: Quote m => m Type
- litT :: Quote m => m TyLit -> 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 -> m Kind -> m Type
- equalityT :: Quote m => m Type
- wildCardT :: Quote m => m Type
- implicitParamT :: Quote m => String -> m Type -> m Type
- classP :: Quote m => Name -> [m Type] -> m Pred
- equalP :: Quote m => m Type -> m Type -> m Pred
- promotedT :: Quote m => Name -> m Type
- promotedTupleT :: Quote m => Int -> m Type
- promotedNilT :: Quote m => m Type
- promotedConsT :: Quote m => m Type
- 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
- numTyLit :: Quote m => Integer -> m TyLit
- strTyLit :: Quote m => String -> m TyLit
- charTyLit :: Quote m => Char -> m TyLit
- plainTV :: Quote m => Name -> m (TyVarBndr ())
- plainInvisTV :: Quote m => Name -> Specificity -> m (TyVarBndr Specificity)
- kindedTV :: Quote m => Name -> m Kind -> m (TyVarBndr ())
- kindedInvisTV :: Quote m => Name -> Specificity -> m Kind -> m (TyVarBndr Specificity)
- specifiedSpec :: Specificity
- inferredSpec :: Specificity
- varK :: Name -> Kind
- conK :: Name -> Kind
- tupleK :: Int -> Kind
- arrowK :: Kind
- listK :: Kind
- appK :: Kind -> Kind -> Kind
- starK :: Quote m => m Kind
- constraintK :: Quote m => m Kind
- noSig :: Quote m => m FamilyResultSig
- kindSig :: Quote m => m Kind -> m FamilyResultSig
- tyVarSig :: Quote m => m (TyVarBndr ()) -> m FamilyResultSig
- injectivityAnn :: Name -> [Name] -> InjectivityAnn
- nominalR :: Role
- representationalR :: Role
- phantomR :: Role
- inferR :: Role
- cCall :: Callconv
- stdCall :: Callconv
- cApi :: Callconv
- prim :: Callconv
- javaScript :: Callconv
- unsafe :: Safety
- safe :: Safety
- interruptible :: Safety
- 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
- unidir :: Quote m => m PatSynDir
- implBidir :: Quote m => m PatSynDir
- explBidir :: Quote m => [m Clause] -> m PatSynDir
- prefixPatSyn :: Quote m => [Name] -> m PatSynArgs
- recordPatSyn :: Quote m => [Name] -> m PatSynArgs
- infixPatSyn :: Quote m => Name -> Name -> m PatSynArgs
- appsE :: Quote m => [m Exp] -> m Exp
- 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 ())] -> Maybe (Q Kind) -> [(Q Con, Maybe String, [Maybe String])] -> [Q DerivClause] -> Maybe String -> Q Dec
- newtypeD_doc :: Q Cxt -> Name -> [Q (TyVarBndr ())] -> Maybe (Q Kind) -> (Q Con, Maybe String, [Maybe String]) -> [Q DerivClause] -> 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
- docCons :: (Q Con, Maybe String, [Maybe String]) -> Q ()
Type synonyms
type DerivClauseQ = Q DerivClause Source #
type SourceStrictnessQ = Q SourceStrictness Source #
type VarBangTypeQ = Q VarBangType Source #
type StrictTypeQ = Q StrictType Source #
type VarStrictTypeQ = Q VarStrictType Source #
type PatSynDirQ = Q PatSynDir Source #
type PatSynArgsQ = Q PatSynArgs Source #
type FamilyResultSigQ = Q FamilyResultSig Source #
type DerivStrategyQ = Q DerivStrategy Source #
type InjectivityAnn = InjectivityAnn Source #
type TyVarBndrUnit = TyVarBndr () Source #
type TyVarBndrSpec = TyVarBndr Specificity Source #
Lowercase pattern syntax functions
floatPrimL :: Rational -> Lit Source #
doublePrimL :: Rational -> Lit Source #
stringPrimL :: [Word8] -> Lit Source #
bytesPrimL :: Bytes -> Lit Source #
Stmt
Range
Body
Guard
Match and Clause
Exp
arithSeqE
Shortcuts
Dec
dataD :: Quote m => m Cxt -> Name -> [m (TyVarBndr ())] -> Maybe (m Kind) -> [m Con] -> [m DerivClause] -> m Dec Source #
newtypeD :: Quote m => m Cxt -> Name -> [m (TyVarBndr ())] -> Maybe (m Kind) -> m Con -> [m DerivClause] -> m Dec Source #
pragRuleD :: Quote m => String -> Maybe [m (TyVarBndr ())] -> [m RuleBndr] -> m Exp -> m Exp -> Phases -> m Dec Source #
dataInstD :: Quote m => m Cxt -> Maybe [m (TyVarBndr ())] -> m Type -> Maybe (m Kind) -> [m Con] -> [m DerivClause] -> m Dec Source #
newtypeInstD :: Quote m => m Cxt -> Maybe [m (TyVarBndr ())] -> m Type -> Maybe (m Kind) -> m Con -> [m DerivClause] -> m Dec Source #
openTypeFamilyD :: Quote m => Name -> [m (TyVarBndr ())] -> m FamilyResultSig -> Maybe InjectivityAnn -> m Dec Source #
closedTypeFamilyD :: Quote m => Name -> [m (TyVarBndr ())] -> m FamilyResultSig -> Maybe InjectivityAnn -> [m TySynEqn] -> m Dec Source #
standaloneDerivWithStrategyD :: Quote m => Maybe (m DerivStrategy) -> m Cxt -> m Type -> m Dec Source #
patSynD :: Quote m => Name -> m PatSynArgs -> m PatSynDir -> m Pat -> m Dec Source #
Pattern synonym declaration
implicitParamBindD :: Quote m => String -> m Exp -> m Dec Source #
Implicit parameter binding declaration. Can only be used in let and where clauses which consist entirely of implicit bindings.
derivClause :: Quote m => Maybe (m DerivStrategy) -> [m Pred] -> m DerivClause Source #
stockStrategy :: Quote m => m DerivStrategy Source #
anyclassStrategy :: Quote m => m DerivStrategy Source #
newtypeStrategy :: Quote m => m DerivStrategy Source #
viaStrategy :: Quote m => m Type -> m DerivStrategy Source #
Type
equalP :: Quote m => m Type -> m Type -> m Pred Source #
Deprecated: As of template-haskell-2.10, constraint predicates (Pred) are just types (Type), in keeping with ConstraintKinds. Please see equalityT
.
promotedNilT :: Quote m => m Type Source #
promotedConsT :: Quote m => m Type Source #
noSourceUnpackedness :: Quote m => m SourceUnpackedness Source #
sourceNoUnpack :: Quote m => m SourceUnpackedness Source #
sourceUnpack :: Quote m => m SourceUnpackedness Source #
noSourceStrictness :: Quote m => m SourceStrictness Source #
sourceLazy :: Quote m => m SourceStrictness Source #
sourceStrict :: Quote m => m SourceStrictness Source #
isStrict :: Quote m => m Strict Source #
Deprecated: Use bang
. See https://gitlab.haskell.org/ghc/ghc/wikis/migration/8.0. Example usage: 'bang noSourceUnpackedness sourceStrict'
notStrict :: Quote m => m Strict Source #
Deprecated: Use bang
. See https://gitlab.haskell.org/ghc/ghc/wikis/migration/8.0. Example usage: 'bang noSourceUnpackedness noSourceStrictness'
unpacked :: Quote m => m Strict Source #
Deprecated: Use bang
. See https://gitlab.haskell.org/ghc/ghc/wikis/migration/8.0. Example usage: 'bang sourceUnpack sourceStrict'
bang :: Quote m => m SourceUnpackedness -> m SourceStrictness -> m Bang Source #
varBangType :: Quote m => Name -> m BangType -> m VarBangType Source #
strictType :: Quote m => m Strict -> m Type -> m StrictType Source #
Deprecated: As of template-haskell-2.11.0.0
, StrictType
has been replaced by BangType
. Please use bangType
instead.
varStrictType :: Quote m => Name -> m StrictType -> m VarStrictType Source #
Deprecated: As of template-haskell-2.11.0.0
, VarStrictType
has been replaced by VarBangType
. Please use varBangType
instead.
Type Literals
Kind
plainInvisTV :: Quote m => Name -> Specificity -> m (TyVarBndr Specificity) Source #
kindedInvisTV :: Quote m => Name -> Specificity -> m Kind -> m (TyVarBndr Specificity) Source #
constraintK :: Quote m => m Kind Source #
Type family result
noSig :: Quote m => m FamilyResultSig Source #
Injectivity annotation
injectivityAnn :: Name -> [Name] -> InjectivityAnn Source #
Role
Callconv
Safety
FunDep
RuleBndr
AnnTarget
valueAnnotation :: Name -> AnnTarget Source #
typeAnnotation :: Name -> AnnTarget Source #
Pattern Synonyms (sub constructs)
prefixPatSyn :: Quote m => [Name] -> m PatSynArgs Source #
recordPatSyn :: Quote m => [Name] -> m PatSynArgs Source #
infixPatSyn :: Quote m => Name -> Name -> m PatSynArgs Source #
Useful helper function
thisModule :: Q Module Source #
pure the Module at the place of splicing. Can be used as an
input for reifyModule
.
Documentation combinators
withDecDoc :: String -> Q Dec -> Q Dec Source #
Attaches Haddock documentation to the declaration provided. Unlike
putDoc
, the names do not need to be in scope when calling this function so
it can be used for quoted declarations and anything else currently being
spliced.
Not all declarations can have documentation attached to them. For those that
can't, withDecDoc
will return it unchanged without any side effects.
withDecsDoc :: String -> Q [Dec] -> Q [Dec] Source #
Variant of withDecDoc
that applies the same documentation to
multiple declarations. Useful for documenting quoted declarations.
:: Name | |
-> [Q Clause] | |
-> Maybe String | Documentation to attach to function |
-> [Maybe String] | Documentation to attach to arguments |
-> Q Dec |
Variant of funD
that attaches Haddock documentation.
:: Q Cxt | |
-> Name | |
-> [Q (TyVarBndr ())] | |
-> Maybe (Q Kind) | |
-> [(Q Con, Maybe String, [Maybe String])] | List of constructors, documentation for the constructor, and documentation for the arguments |
-> [Q DerivClause] | |
-> Maybe String | Documentation to attach to the data declaration |
-> Q Dec |
Variant of dataD
that attaches Haddock documentation.
:: Q Cxt | |
-> Name | |
-> [Q (TyVarBndr ())] | |
-> Maybe (Q Kind) | |
-> (Q Con, Maybe String, [Maybe String]) | The constructor, documentation for the constructor, and documentation for the arguments |
-> [Q DerivClause] | |
-> Maybe String | Documentation to attach to the newtype declaration |
-> Q Dec |
Variant of newtypeD
that attaches Haddock documentation.
:: Q Cxt | |
-> Maybe [Q (TyVarBndr ())] | |
-> Q Type | |
-> Maybe (Q Kind) | |
-> [(Q Con, Maybe String, [Maybe String])] | List of constructors, documentation for the constructor, and documentation for the arguments |
-> [Q DerivClause] | |
-> Maybe String | Documentation to attach to the instance declaration |
-> Q Dec |
Variant of dataInstD
that attaches Haddock documentation.
:: Q Cxt | |
-> Maybe [Q (TyVarBndr ())] | |
-> Q Type | |
-> Maybe (Q Kind) | |
-> (Q Con, Maybe String, [Maybe String]) | The constructor, documentation for the constructor, and documentation for the arguments |
-> [Q DerivClause] | |
-> Maybe String | Documentation to attach to the instance declaration |
-> Q Dec |
Variant of newtypeInstD
that attaches Haddock documentation.