template-haskell-2.22.1.0: Support library for Template Haskell
Safe HaskellSafe
LanguageHaskell2010

Language.Haskell.TH.Lib.Internal

Description

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.

Documentation

appE :: Quote m => m Exp -> m Exp -> m Exp #

appK :: Kind -> Kind -> Kind #

appKindT :: Quote m => m Type -> m Kind -> m Type #

appT :: Quote m => m Type -> m Type -> m Type #

appTypeE :: Quote m => m Exp -> m Type -> m Exp #

appsE :: Quote m => [m Exp] -> m Exp #

arithSeqE :: Quote m => m Range -> m Exp #

arrowT :: Quote m => m Type #

asP :: Quote m => Name -> m Pat -> m Pat #

bangP :: Quote m => m Pat -> m Pat #

bangType :: Quote m => m Bang -> m Type -> m BangType #

bindS :: Quote m => m Pat -> m Exp -> m Stmt #

caseE :: Quote m => m Exp -> [m Match] -> m Exp #

charL :: Char -> Lit #

charTyLit :: Quote m => Char -> m TyLit #

classD :: Quote m => m Cxt -> Name -> [m (TyVarBndr BndrVis)] -> [FunDep] -> [m Dec] -> m Dec #

classP :: Quote m => Name -> [m Type] -> m Pred #

clause :: Quote m => [m Pat] -> m Body -> [m Dec] -> m Clause #

compE :: Quote m => [m Stmt] -> m Exp #

conE :: Quote m => Name -> m Exp #

conK :: Name -> Kind #

conP :: Quote m => Name -> [m Type] -> [m Pat] -> m Pat #

conT :: Quote m => Name -> m Type #

condE :: Quote m => m Exp -> m Exp -> m Exp -> m Exp #

constrainedE :: Quote m => [m Exp] -> m Exp -> m Exp #

cxt :: Quote m => [m Pred] -> m Cxt #

dataD :: Quote m => m Cxt -> Name -> [m (TyVarBndr BndrVis)] -> Maybe (m Kind) -> [m Con] -> [m DerivClause] -> m Dec #

dataFamilyD :: Quote m => Name -> [m (TyVarBndr BndrVis)] -> Maybe (m Kind) -> m Dec #

dataInstD :: Quote m => m Cxt -> Maybe [m (TyVarBndr ())] -> m Type -> Maybe (m Kind) -> [m Con] -> [m DerivClause] -> m Dec #

defaultD :: Quote m => [m Type] -> m Dec #

defaultSigD :: Quote m => Name -> m Type -> m Dec #

doE :: Quote m => Maybe ModName -> [m Stmt] -> m Exp #

dyn :: Quote m => String -> m Exp #

equalP :: Quote m => m Type -> m Type -> m Pred #

equalityT :: Quote m => m Type #

explBidir :: Quote m => [m Clause] -> m PatSynDir #

fieldExp :: Quote m => Name -> m Exp -> m (Name, Exp) #

fieldPat :: Quote m => Name -> m Pat -> m FieldPat #

forImpD :: Quote m => Callconv -> Safety -> String -> Name -> m Type -> m Dec #

forallC :: Quote m => [m (TyVarBndr Specificity)] -> m Cxt -> m Con -> m Con #

forallE :: Quote m => [m (TyVarBndr Specificity)] -> m Exp -> m Exp #

forallT :: Quote m => [m (TyVarBndr Specificity)] -> m Cxt -> m Type -> m Type #

forallVisE :: Quote m => [m (TyVarBndr ())] -> m Exp -> m Exp #

forallVisT :: Quote m => [m (TyVarBndr ())] -> m Type -> m Type #

fromE :: Quote m => m Exp -> m Exp #

fromR :: Quote m => m Exp -> m Range #

fromThenE :: Quote m => m Exp -> m Exp -> m Exp #

fromThenR :: Quote m => m Exp -> m Exp -> m Range #

fromThenToE :: Quote m => m Exp -> m Exp -> m Exp -> m Exp #

fromThenToR :: Quote m => m Exp -> m Exp -> m Exp -> m Range #

fromToE :: Quote m => m Exp -> m Exp -> m Exp #

fromToR :: Quote m => m Exp -> m Exp -> m Range #

funD :: Quote m => Name -> [m Clause] -> m Dec #

funDep :: [Name] -> [Name] -> FunDep #

gadtC :: Quote m => [Name] -> [m StrictType] -> m Type -> m Con #

getFieldE :: Quote m => m Exp -> String -> m Exp #

guardedB :: Quote m => [m (Guard, Exp)] -> m Body #

implicitParamT :: Quote m => String -> m Type -> m Type #

infixApp :: Quote m => m Exp -> m Exp -> m Exp -> m Exp #

infixC :: Quote m => m (Bang, Type) -> Name -> m (Bang, Type) -> m Con #

infixE :: Quote m => Maybe (m Exp) -> m Exp -> Maybe (m Exp) -> m Exp #

infixLD :: Quote m => Int -> Name -> m Dec #

infixND :: Quote m => Int -> Name -> m Dec #

infixP :: Quote m => m Pat -> Name -> m Pat -> m Pat #

infixRD :: Quote m => Int -> Name -> m Dec #

infixT :: Quote m => m Type -> Name -> m Type -> m Type #

instanceD :: Quote m => m Cxt -> m Type -> [m Dec] -> m Dec #

instanceWithOverlapD :: Quote m => Maybe Overlap -> m Cxt -> m Type -> [m Dec] -> m Dec #

invisP :: Quote m => m Type -> m Pat #

kiSigD :: Quote m => Name -> m Kind -> m Dec #

kindedTV :: Quote m => Name -> m Kind -> m (TyVarBndr ()) #

labelE :: Quote m => String -> 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 #

lamE :: Quote m => [m Pat] -> m Exp -> m Exp #

letE :: Quote m => [m Dec] -> m Exp -> m Exp #

letS :: Quote m => [m Dec] -> m Stmt #

listE :: Quote m => [m Exp] -> m Exp #

listP :: Quote m => [m Pat] -> m Pat #

listT :: Quote m => m Type #

litE :: Quote m => Lit -> m Exp #

litP :: Quote m => Lit -> m Pat #

litT :: Quote m => m TyLit -> m Type #

match :: Quote m => m Pat -> m Body -> [m Dec] -> m Match #

mdoE :: Quote m => Maybe ModName -> [m Stmt] -> m Exp #

mulArrowT :: Quote m => m Type #

multiIfE :: Quote m => [m (Guard, Exp)] -> m Exp #

newtypeD :: Quote m => m Cxt -> Name -> [m (TyVarBndr BndrVis)] -> 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 #

noBindS :: Quote m => m Exp -> m Stmt #

normalB :: Quote m => m Exp -> m Body #

normalC :: Quote m => Name -> [m BangType] -> m Con #

normalG :: Quote m => m Exp -> m Guard #

normalGE :: Quote m => m Exp -> m Exp -> m (Guard, Exp) #

orP :: Quote m => NonEmpty (m Pat) -> m Pat #

parS :: Quote m => [[m Stmt]] -> m Stmt #

parensE :: Quote m => m Exp -> m Exp #

parensP :: Quote m => m Pat -> m Pat #

parensT :: Quote m => m Type -> m Type #

patG :: Quote m => [m Stmt] -> m Guard #

patGE :: Quote m => [m Stmt] -> m Exp -> m (Guard, Exp) #

patSynD :: Quote m => Name -> m PatSynArgs -> m PatSynDir -> m Pat -> m Dec #

patSynSigD :: Quote m => Name -> m Type -> m Dec #

plainTV :: Quote m => Name -> m (TyVarBndr ()) #

pragAnnD :: Quote m => AnnTarget -> m Exp -> m Dec #

pragCompleteD :: Quote m => [Name] -> Maybe Name -> m Dec #

pragInlD :: Quote m => Name -> Inline -> RuleMatch -> Phases -> m Dec #

pragLineD :: Quote m => Int -> String -> m Dec #

pragOpaqueD :: Quote m => Name -> m Dec #

pragRuleD :: Quote m => String -> Maybe [m (TyVarBndr ())] -> [m RuleBndr] -> m Exp -> m Exp -> Phases -> m Dec #

pragSCCFunD :: 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 #

promotedInfixT :: Quote m => m Type -> Name -> m Type -> m Type #

promotedT :: Quote m => Name -> m Type #

promotedUInfixT :: Quote m => m Type -> Name -> m Type -> m Type #

recC :: Quote m => Name -> [m VarBangType] -> m Con #

recConE :: Quote m => Name -> [m (Name, Exp)] -> m Exp #

recGadtC :: Quote m => [Name] -> [m VarStrictType] -> m Type -> m Con #

recP :: Quote m => Name -> [m FieldPat] -> m Pat #

recS :: Quote m => [m Stmt] -> m Stmt #

recUpdE :: Quote m => m Exp -> [m (Name, Exp)] -> m Exp #

roleAnnotD :: Quote m => Name -> [Role] -> m Dec #

ruleVar :: Quote m => Name -> m RuleBndr #

sectionL :: Quote m => m Exp -> m Exp -> m Exp #

sectionR :: Quote m => m Exp -> m Exp -> m Exp #

sigD :: Quote m => Name -> m Type -> m Dec #

sigE :: Quote m => m Exp -> m Type -> m Exp #

sigP :: Quote m => m Pat -> m Type -> m Pat #

sigT :: Quote m => m Type -> m Kind -> m Type #

standaloneDerivD :: Quote m => m Cxt -> m Type -> m Dec #

starK :: Quote m => m Kind #

staticE :: Quote m => m Exp -> m Exp #

strTyLit :: Quote m => String -> m TyLit #

strictType :: Quote m => m Strict -> m Type -> m StrictType #

stringE :: Quote m => String -> m Exp #

tildeP :: Quote m => m Pat -> m Pat #

tupE :: Quote m => [Maybe (m Exp)] -> m Exp #

tupP :: Quote m => [m Pat] -> m Pat #

tupleT :: Quote m => Int -> m Type #

tySynD :: Quote m => Name -> [m (TyVarBndr BndrVis)] -> m Type -> m Dec #

tySynEqn :: Quote m => Maybe [m (TyVarBndr ())] -> m Type -> m Type -> m TySynEqn #

tySynInstD :: Quote m => m TySynEqn -> m Dec #

typeDataD :: Quote m => Name -> [m (TyVarBndr BndrVis)] -> Maybe (m Kind) -> [m Con] -> m Dec #

typeE :: Quote m => m Type -> m Exp #

typeP :: Quote m => m Type -> m Pat #

typedBracketE :: Quote m => m Exp -> m Exp #

typedRuleVar :: Quote m => Name -> m Type -> m RuleBndr #

typedSpliceE :: Quote m => m Exp -> m Exp #

uInfixE :: Quote m => m Exp -> m Exp -> m Exp -> m Exp #

uInfixP :: Quote m => m Pat -> Name -> m Pat -> m Pat #

uInfixT :: Quote m => m Type -> Name -> m Type -> m Type #

unboundVarE :: Quote m => Name -> m Exp #

unboxedSumE :: Quote m => m Exp -> SumAlt -> SumArity -> m Exp #

unboxedSumP :: Quote m => m Pat -> SumAlt -> SumArity -> m Pat #

unboxedTupE :: Quote m => [Maybe (m Exp)] -> m Exp #

unboxedTupP :: Quote m => [m Pat] -> m Pat #

valD :: Quote m => m Pat -> m Body -> [m Dec] -> m Dec #

varE :: Quote m => Name -> m Exp #

varK :: Name -> Kind #

varP :: Quote m => Name -> m Pat #

varT :: Quote m => Name -> m Type #

viewP :: Quote m => m Exp -> m Pat -> m Pat #

wildCardT :: Quote m => m Type #

wildP :: Quote m => m Pat #

withDecsDoc :: String -> Q [Dec] -> Q [Dec] #

type BangQ = Q Bang #

type BodyQ = Q Body #

type ClauseQ = Q Clause #

type CodeQ = Code Q #

type ConQ = Q Con #

type CxtQ = Q Cxt #

type DecQ = Q Dec #

type Decs = [Dec] #

type DecsQ = Q [Dec] #

type ExpQ = Q Exp #

type GuardQ = Q Guard #

type InfoQ = Q Info #

type KindQ = Q Kind #

type MatchQ = Q Match #

type PatQ = Q Pat #

type PredQ = Q Pred #

type RangeQ = Q Range #

type Role = Role #

type StmtQ = Q Stmt #

type TExpQ (a :: TYPE r) = Q (TExp a) #

type TyLitQ = Q TyLit #

type TypeQ = Q Type #