Safe Haskell | Safe |
---|---|
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.
Documentation
anyclassStrategy :: Quote m => m DerivStrategy #
bang :: Quote m => m SourceUnpackedness -> m SourceStrictness -> m Bang #
bytesPrimL :: Bytes -> Lit #
closedTypeFamilyD :: Quote m => Name -> [m (TyVarBndr BndrVis)] -> m FamilyResultSig -> Maybe InjectivityAnn -> [m TySynEqn] -> m Dec #
constraintK :: Quote m => m Kind #
dataD :: Quote m => m Cxt -> Name -> [m (TyVarBndr BndrVis)] -> Maybe (m Kind) -> [m Con] -> [m DerivClause] -> m Dec #
dataD_doc :: Q Cxt -> Name -> [Q (TyVarBndr BndrVis)] -> Maybe (Q Kind) -> [(Q Con, Maybe String, [Maybe String])] -> [Q DerivClause] -> Maybe String -> Q Dec #
dataInstD :: Quote m => m Cxt -> Maybe [m (TyVarBndr ())] -> m Type -> Maybe (m Kind) -> [m Con] -> [m DerivClause] -> m 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 #
derivClause :: Quote m => Maybe (m DerivStrategy) -> [m Pred] -> m DerivClause #
doublePrimL :: Rational -> Lit #
floatPrimL :: Rational -> Lit #
implicitParamVarE :: Quote m => String -> m Exp #
infixLWithSpecD :: Quote m => Int -> NamespaceSpecifier -> Name -> m Dec #
infixNWithSpecD :: Quote m => Int -> NamespaceSpecifier -> Name -> m Dec #
infixPatSyn :: Quote m => Name -> Name -> m PatSynArgs #
infixRWithSpecD :: Quote m => Int -> NamespaceSpecifier -> Name -> m Dec #
injectivityAnn :: Name -> [Name] -> InjectivityAnn #
interruptible :: Safety #
javaScript :: Callconv #
kindSig :: Quote m => m Kind -> m FamilyResultSig #
kindedInvisTV :: Quote m => Name -> Specificity -> m Kind -> m (TyVarBndr Specificity) #
newtypeD :: Quote m => m Cxt -> Name -> [m (TyVarBndr BndrVis)] -> Maybe (m Kind) -> m Con -> [m DerivClause] -> m Dec #
newtypeD_doc :: Q Cxt -> Name -> [Q (TyVarBndr BndrVis)] -> Maybe (Q Kind) -> (Q Con, Maybe String, [Maybe String]) -> [Q DerivClause] -> Maybe String -> Q Dec #
newtypeInstD :: Quote m => m Cxt -> Maybe [m (TyVarBndr ())] -> m Type -> Maybe (m Kind) -> m Con -> [m DerivClause] -> m 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 #
newtypeStrategy :: Quote m => m DerivStrategy #
noSig :: Quote m => m FamilyResultSig #
noSourceStrictness :: Quote m => m SourceStrictness #
noSourceUnpackedness :: Quote m => m SourceUnpackedness #
openTypeFamilyD :: Quote m => Name -> [m (TyVarBndr BndrVis)] -> m FamilyResultSig -> Maybe InjectivityAnn -> m Dec #
patSynD_doc :: Name -> Q PatSynArgs -> Q PatSynDir -> Q Pat -> Maybe String -> [Maybe String] -> Q Dec #
plainInvisTV :: Quote m => Name -> Specificity -> m (TyVarBndr Specificity) #
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 #
pragSpecInstD :: Quote m => m Type -> m Dec #
prefixPatSyn :: Quote m => [Name] -> m PatSynArgs #
promotedConsT :: Quote m => m Type #
promotedNilT :: Quote m => m Type #
promotedTupleT :: Quote m => Int -> m Type #
recordPatSyn :: Quote m => [Name] -> m PatSynArgs #
sourceLazy :: Quote m => m SourceStrictness #
sourceNoUnpack :: Quote m => m SourceUnpackedness #
sourceStrict :: Quote m => m SourceStrictness #
sourceUnpack :: Quote m => m SourceUnpackedness #
standaloneDerivWithStrategyD :: Quote m => Maybe (m DerivStrategy) -> m Cxt -> m Type -> m Dec #
stockStrategy :: Quote m => m DerivStrategy #
strictType :: Quote m => m Strict -> m Type -> m StrictType #
stringPrimL :: [Word8] -> Lit #
thisModule :: Q Module #
tySynInstD :: Quote m => m TySynEqn -> m Dec #
tyVarSig :: Quote m => m (TyVarBndr ()) -> m FamilyResultSig #
typeAnnotation :: Name -> AnnTarget #
typeDataD_doc :: Name -> [Q (TyVarBndr BndrVis)] -> Maybe (Q Kind) -> [(Q Con, Maybe String, [Maybe String])] -> Maybe String -> Q Dec #
typedBracketE :: Quote m => m Exp -> m Exp #
typedSpliceE :: Quote m => m Exp -> m Exp #
unboundVarE :: Quote m => Name -> m Exp #
unboxedSumT :: Quote m => SumArity -> m Type #
unboxedTupP :: Quote m => [m Pat] -> m Pat #
unboxedTupleT :: Quote m => Int -> m Type #
valueAnnotation :: Name -> AnnTarget #
varBangType :: Quote m => Name -> m BangType -> m VarBangType #
varStrictType :: Quote m => Name -> m StrictType -> m VarStrictType #
viaStrategy :: Quote m => m Type -> m DerivStrategy #
type DerivClauseQ = Q DerivClause #
type DerivStrategyQ = Q DerivStrategy #
type FamilyResultSigQ = Q FamilyResultSig #
type InjectivityAnn = InjectivityAnn #
type PatSynArgsQ = Q PatSynArgs #
type PatSynDirQ = Q PatSynDir #
type SourceStrictnessQ = Q SourceStrictness #
type SourceUnpackednessQ = Q SourceUnpackedness #
type StrictTypeQ = Q StrictType #
type TyVarBndrSpec = TyVarBndr Specificity #
type TyVarBndrUnit = TyVarBndr () #
type TyVarBndrVis = TyVarBndr BndrVis #
type VarBangTypeQ = Q VarBangType #
type VarStrictTypeQ = Q VarStrictType #