Representation-polymorphic since template-haskell-2.17.0.0.
Moduleghc-internal-10.0.0Haskell2010
GHC.Internal.TH.Lib
GHC.Internal.TH.Lib 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.
Contents
- Type synonyms
- Lowercase pattern syntax functions
- Stmt
- Range
- Body
- Guard
- Match and Clause
- Exp
- arithSeqE Shortcuts
- Dec
- Type
- Type Literals
- Kind
- Type family result
- Injectivity annotation
- Role
- Callconv
- Safety
- FunDep
- RuleBndr
- AnnTarget
- Pattern Synonyms (sub constructs)
- Useful helper function
- Documentation combinators
Synopsis
- type TExpQ
- type CodeQ
- type InfoQ
- type PatQ
- type FieldPatQ
- type ExpQ
- type DecQ
- type DecsQ
- type Decs
- type ConQ
- type TypeQ
- type KindQ
- type TyLitQ
- type CxtQ
- type PredQ
- type DerivClauseQ
- type MatchQ
- type ClauseQ
- type BodyQ
- type GuardQ
- type StmtQ
- type RangeQ
- type SourceStrictnessQ
- type SourceUnpackednessQ
- type BangQ
- type BangTypeQ
- type VarBangTypeQ
- type StrictTypeQ
- type VarStrictTypeQ
- type FieldExpQ
- type RuleBndrQ
- type TySynEqnQ
- type PatSynDirQ
- type PatSynArgsQ
- type FamilyResultSigQ
- type DerivStrategyQ
- type Role
- type InjectivityAnn
- type TyVarBndrUnit
- type TyVarBndrSpec
- type TyVarBndrVis
- value intPrimL
- value wordPrimL
- value floatPrimL
- value doublePrimL
- value integerL
- value charL
- value charPrimL
- value stringL
- value stringPrimL
- value bytesPrimL
- value rationalL
- value litP
- value varP
- value tupP
- value unboxedTupP
- value unboxedSumP
- value conP
- value infixP
- value uInfixP
- value parensP
- value tildeP
- value bangP
- value asP
- value wildP
- value recP
- value listP
- value sigP
- value typeP
- value invisP
- value viewP
- value orP
- value fieldPat
- value bindS
- value letS
- value noBindS
- value parS
- value recS
- value fromR
- value fromThenR
- value fromToR
- value fromThenToR
- value normalB
- value guardedB
- value normalG
- value normalGE
- value patG
- value patGE
- value match
- value clause
- value dyn
- value varE
- value conE
- value litE
- value appE
- value appTypeE
- value parensE
- value uInfixE
- value infixE
- value infixApp
- value sectionL
- value sectionR
- value lamE
- value lam1E
- value lamCaseE
- value lamCasesE
- value tupE
- value unboxedTupE
- value unboxedSumE
- value condE
- value multiIfE
- value letE
- value caseE
- value doE
- value mdoE
- value compE
- value arithSeqE
- value listE
- value sigE
- value recConE
- value recUpdE
- value stringE
- value fieldExp
- value staticE
- value unboundVarE
- value labelE
- value implicitParamVarE
- value getFieldE
- value projectionE
- value typedSpliceE
- value typedBracketE
- value fromE
- value fromThenE
- value fromToE
- value fromThenToE
- value typeE
- value forallE
- value forallVisE
- value constrainedE
- value valD
- value funD
- value tySynD
- value dataD
- value newtypeD
- value typeDataD
- value classD
- value instanceD
- value instanceWithOverlapD
- value sigD
- value kiSigD
- value forImpD
- value infixLD
- value infixRD
- value infixND
- value infixLWithSpecD
- value infixRWithSpecD
- value infixNWithSpecD
- value defaultD
- value pragInlD
- value pragOpaqueD
- value pragSpecED
- value pragSpecInlED
- value pragSpecInstD
- value pragRuleD
- value pragAnnD
- value pragLineD
- value pragCompleteD
- value pragSCCFunD
- value pragSCCFunNamedD
- value dataInstD
- value newtypeInstD
- value tySynInstD
- value dataFamilyD
- value openTypeFamilyD
- value closedTypeFamilyD
- value roleAnnotD
- value standaloneDerivD
- value standaloneDerivWithStrategyD
- value defaultSigD
- value patSynD
- value patSynSigD
- value implicitParamBindD
- value tySynEqn
- value cxt
- value derivClause
- value stockStrategy
- value anyclassStrategy
- value newtypeStrategy
- value viaStrategy
- value normalC
- value recC
- value infixC
- value forallC
- value gadtC
- value recGadtC
- value forallT
- value forallVisT
- value varT
- value conT
- value infixT
- value uInfixT
- value promotedInfixT
- value promotedUInfixT
- value parensT
- value appT
- value appKindT
- value arrowT
- value mulArrowT
- value listT
- value litT
- value tupleT
- value unboxedTupleT
- value unboxedSumT
- value sigT
- value equalityT
- value wildCardT
- value implicitParamT
- value promotedT
- value promotedTupleT
- value promotedNilT
- value promotedConsT
- value noSourceUnpackedness
- value sourceNoUnpack
- value sourceUnpack
- value noSourceStrictness
- value sourceLazy
- value sourceStrict
- value bang
- value bangType
- value varBangType
- value numTyLit
- value strTyLit
- value charTyLit
- value plainTV
- value plainInvisTV
- value plainBndrTV
- value kindedTV
- value kindedInvisTV
- value kindedBndrTV
- value specifiedSpec
- value inferredSpec
- value bndrReq
- value bndrInvis
- value varK
- value conK
- value tupleK
- value arrowK
- value listK
- value appK
- value starK
- value constraintK
- value noSig
- value kindSig
- value tyVarSig
- value injectivityAnn
- value nominalR
- value representationalR
- value phantomR
- value inferR
- value cCall
- value stdCall
- value cApi
- value prim
- value javaScript
- value unsafe
- value safe
- value interruptible
- value funDep
- value ruleVar
- value typedRuleVar
- value valueAnnotation
- value typeAnnotation
- value moduleAnnotation
- value unidir
- value implBidir
- value explBidir
- value prefixPatSyn
- value recordPatSyn
- value infixPatSyn
- value appsE
- value thisModule
- value withDecDoc
- value withDecsDoc
- value funD_doc
- value dataD_doc
- value newtypeD_doc
- value typeDataD_doc
- value dataInstD_doc
- value newtypeInstD_doc
- value patSynD_doc
- value docCons
- Packageghc-internal-10.0.0
- Exports291
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceLib.hs
Type synonyms
Lowercase pattern syntax functions
Stmt
Range
Body
Guard
Match and Clause
Use with caseE
Use with funD
Exp
Dynamically binding a variable (unhygienic)
Single-arg lambda
Lambda-case (case)
Lambda-cases (cases)
staticE x = [| static x |]arithSeqE Shortcuts
Dec
Pattern synonym declaration
Pattern synonym type signature
Implicit parameter binding declaration. Can only be used in let and where clauses which consist entirely of implicit bindings.
Type
Type Literals
Kind
Type family result
Injectivity annotation
Role
Callconv
Safety
FunDep
RuleBndr
AnnTarget
Pattern Synonyms (sub constructs)
Useful helper function
pure the Module at the place of splicing. Can be used as an input for reifyModule.
Documentation combinators
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.
Variant of withDecDoc that applies the same documentation to multiple declarations. Useful for documenting quoted declarations.
funD_doc Variant of funD that attaches Haddock documentation.
dataD_doc Variant of dataD that attaches Haddock documentation.
newtypeD_doc Variant of newtypeD that attaches Haddock documentation.
typeDataD_doc Variant of typeDataD that attaches Haddock documentation.
dataInstD_doc Variant of dataInstD that attaches Haddock documentation.
newtypeInstD_doc Variant of newtypeInstD that attaches Haddock documentation.
patSynD_doc Variant of patSynD that attaches Haddock documentation.
Document a data/newtype constructor with its arguments.