Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
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
- 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 #
:: ForeignPtr Word8 | Pointer to the data |
-> Word | Offset from the pointer |
-> Word | Number of bytes |
-> Bytes |
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 #
defaultBndrFlag :: flag Source #
Instances
DefaultBndrFlag BndrVis Source # | |
Defined in Language.Haskell.TH.Lib | |
DefaultBndrFlag Specificity Source # | |
Defined in Language.Haskell.TH.Lib | |
DefaultBndrFlag () Source # | |
Defined in Language.Haskell.TH.Lib defaultBndrFlag :: () Source # |
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 #
Instances
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
Data DerivStrategy # | |||||
Defined in GHC.Internal.TH.Syntax 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 # | |||||
Generic DerivStrategy # | |||||
Defined in GHC.Internal.TH.Syntax
from :: DerivStrategy -> Rep DerivStrategy x # to :: Rep DerivStrategy x -> DerivStrategy # | |||||
Show DerivStrategy # | |||||
Defined in GHC.Internal.TH.Syntax showsPrec :: Int -> DerivStrategy -> ShowS # show :: DerivStrategy -> String # showList :: [DerivStrategy] -> ShowS # | |||||
Eq DerivStrategy # | |||||
Defined in GHC.Internal.TH.Syntax (==) :: DerivStrategy -> DerivStrategy -> Bool # (/=) :: DerivStrategy -> DerivStrategy -> Bool # | |||||
Ord DerivStrategy # | |||||
Defined in GHC.Internal.TH.Syntax compare :: DerivStrategy -> DerivStrategy -> Ordering # (<) :: DerivStrategy -> DerivStrategy -> Bool # (<=) :: DerivStrategy -> DerivStrategy -> Bool # (>) :: DerivStrategy -> DerivStrategy -> Bool # (>=) :: DerivStrategy -> DerivStrategy -> Bool # max :: DerivStrategy -> DerivStrategy -> DerivStrategy # min :: DerivStrategy -> DerivStrategy -> DerivStrategy # | |||||
Lift DerivStrategy # | |||||
Defined in GHC.Internal.TH.Lift lift :: Quote m => DerivStrategy -> m Exp # liftTyped :: forall (m :: Type -> Type). Quote m => DerivStrategy -> Code m DerivStrategy # | |||||
type Rep DerivStrategy # | |||||
Defined in GHC.Internal.TH.Syntax type Rep DerivStrategy = D1 ('MetaData "DerivStrategy" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) ((C1 ('MetaCons "StockStrategy" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "AnyclassStrategy" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "NewtypeStrategy" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ViaStrategy" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) |
Class
Instances
Data Overlap # | |||||
Defined in GHC.Internal.TH.Syntax 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 # | |||||
Generic Overlap # | |||||
Defined in GHC.Internal.TH.Syntax
| |||||
Show Overlap # | |||||
Eq Overlap # | |||||
Ord Overlap # | |||||
Lift Overlap # | |||||
type Rep Overlap # | |||||
Defined in GHC.Internal.TH.Syntax type Rep Overlap = D1 ('MetaData "Overlap" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) ((C1 ('MetaCons "Overlappable" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Overlapping" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Overlaps" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Incoherent" 'PrefixI 'False) (U1 :: Type -> Type))) |
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 #