Language.Haskell.TH.Syntax
| Безопасность Haskell | Доверенный |
|---|---|
| Язык | Haskell2010 |
class Monad m => Quote (m :: Type -> Type) where Источник
Класс Quote реализует минимальный интерфейс, необходимый для десахаризации квазицитирований.
- Суперкласс
Monad mнеобходим для объединения различных фрагментов AST. -
newNameиспользуется при десахаризации связывающих структур, таких как лямбда-выражения, для генерации новых имён.
Поэтому тип нетипизированного квазицитирования в GHC — `Quote m => m Exp`
Много лет тип квазицитирования был фиксирован как `Q Exp`, но более точное указание минимального интерфейса позволяет извлекать Exp непосредственно из квазицитирования, не взаимодействуя с Q.
Методы
newName :: String -> m Name Источник
Сгенерировать новое имя, которое нельзя захватить.
Например, это:
f = $(do
nm1 <- newName "x"
let nm2 = mkName "x"
return (LamE [VarP nm1] (LamE [VarP nm2] (VarE nm1)))
)
создаст сплайс
f = \x0 -> \x -> x0
В частности, вхождение VarE nm1 относится к связыванию VarP nm1 и не захватывается связыванием VarP nm2.
Хотя имена, сгенерированные с помощью newName, нельзя захватить, сами они могут захватывать другие имена. Например, это:
g = $(do nm1 <- newName "x" let nm2 = mkName "x" return (LamE [VarP nm2] (LamE [VarP nm1] (VarE nm2))) )
создаст сплайс
g = \x -> \x0 -> x0
поскольку вхождение VarE nm2 захватывается самым внутренним связыванием x, а именно VarP nm1.
Экземпляры
Выражение Haskell.
Конструкторы
| VarE Name | { x } |
| ConE Name | data T1 = C1 t1 t2; p = {C1} e1 e2 |
| LitE Lit | { 5 or 'c'} |
| AppE Exp Exp | { f x } |
| AppTypeE Exp Type | { f @Int } |
| InfixE (Maybe Exp) Exp (Maybe Exp) | {x + y} or {(x+)} or {(+ x)} or {(+)} |
| UInfixE Exp Exp Exp |
{x + y}
|
| ParensE Exp |
{ (e) }
|
| LamE [Pat] Exp | { \ p1 p2 -> e } |
| LamCaseE [Match] | { \case m1; m2 } |
| LamCasesE [Clause] | { \cases m1; m2 } |
| TupE [Maybe Exp] |
{ (e1,e2) }
(1,) преобразуется в TupE [Just (LitE (IntegerL 1)),Nothing] |
| UnboxedTupE [Maybe Exp] |
{ (# e1,e2 #) }
(# 'c', #) преобразуется в UnboxedTupE [Just (LitE (CharL 'c')),Nothing] |
| UnboxedSumE Exp SumAlt SumArity | { (#|e|#) } |
| CondE Exp Exp Exp | { if e1 then e2 else e3 } |
| MultiIfE [(Guard, Exp)] | { if | g1 -> e1 | g2 -> e2 } |
| LetE [Dec] Exp | { let { x=e1; y=e2 } in e3 } |
| CaseE Exp [Match] | { case e of m1; m2 } |
| DoE (Maybe ModName) [Stmt] |
|
| MDoE (Maybe ModName) [Stmt] |
|
| CompE [Stmt] |
{ [ (x,y) | x <- xs, y <- ys ] }
Результирующее выражение генератора списков — это последний из Например, преобразование: [ f x | x <- xs ] CompE [BindS (VarP x) (VarE xs), NoBindS (AppE (VarE f) (VarE x))] |
| ArithSeqE Range | { [ 1 ,2 .. 10 ] } |
| ListE [Exp] | { [1,2,3] } |
| SigE Exp Type | { e :: t } |
| RecConE Name [FieldExp] | { T { x = y, z = w } } |
| RecUpdE Exp [FieldExp] | { (f x) { z = w } } |
| StaticE Exp | { static e } |
| UnboundVarE Name |
{ _x }
Используется для дыр или неразрешённых идентификаторов в AST-квазицитированиях. Обратите внимание, что это может быть как имя переменной, так и имя конструктора. |
| LabelE String |
|
| ImplicitParamVarE String |
|
| GetFieldE Exp String |
|
| ProjectionE (NonEmpty String) |
|
| TypedBracketE Exp | [|| e ||] |
| TypedSpliceE Exp | $$e |
| TypeE Type | { type t } |
| ForallE [TyVarBndr Specificity] Exp | forall <vars>. <expr> |
| ForallVisE [TyVarBndr ()] Exp | forall <vars> -> <expr> |
| ConstrainedE [Exp] Exp | <ctxt> => <expr> |
Экземпляры
| Ppr Exp Источник | |||||
| Eq Exp Источник | |||||
| Ord Exp Источник | |||||
| Data Exp Источник | |||||
Определено в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Exp -> c Exp Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Exp Источник toConstr :: Exp -> Constr Источник dataTypeOf :: Exp -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Exp) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Exp) Источник gmapT :: (forall b. Data b => b -> b) -> Exp -> Exp Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Exp -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Exp -> r Источник gmapQ :: (forall d. Data d => d -> u) -> Exp -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> Exp -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> Exp -> m Exp Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Exp -> m Exp Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Exp -> m Exp Источник | |||||
| Generic Exp Источник | |||||
Определено в GHC.Internal.TH.Syntax Ассоциированные типы
| |||||
|
| |||
| Show Exp Источник | |||
| Lift Exp Источник | Начиная с: template-haskell-2.22.1.0 |
||
| type Rep Exp Источник | |||
Определено в GHC.Internal.TH.Syntax | |||
type Rep Exp = D1 ('MetaData "Exp" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (((((C1 ('MetaCons "VarE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: C1 ('MetaCons "ConE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))) :+: (C1 ('MetaCons "LitE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Lit)) :+: C1 ('MetaCons "AppE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)))) :+: ((C1 ('MetaCons "AppTypeE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "InfixE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Exp)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Exp))))) :+: (C1 ('MetaCons "UInfixE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))) :+: (C1 ('MetaCons "ParensE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons "LamE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pat]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)))))) :+: (((C1 ('MetaCons "LamCaseE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Match])) :+: C1 ('MetaCons "LamCasesE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Clause]))) :+: (C1 ('MetaCons "TupE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Maybe Exp])) :+: (C1 ('MetaCons "UnboxedTupE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Maybe Exp])) :+: C1 ('MetaCons "UnboxedSumE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SumAlt) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SumArity)))))) :+: ((C1 ('MetaCons "CondE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 |
Exp))) :+: C1 ('MetaCons "MultiIfE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(Guard, Exp)]))) :+: (C1 ('MetaCons "LetE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: (C1 ('MetaCons "CaseE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Match])) :+: C1 ('MetaCons "DoE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ModName)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Stmt]))))))) :+: ((((C1 ('MetaCons "MDoE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ModName)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Stmt])) :+: C1 ('MetaCons "CompE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Stmt]))) :+: (C1 ('MetaCons "ArithSeqE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Range)) :+: C1 ('MetaCons "ListE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Exp])))) :+: ((C1 ('MetaCons "SigE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "RecConE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FieldExp]))) :+: (C1 ('MetaCons "RecUpdE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FieldExp])) :+: (C1 ('MetaCons "StaticE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons "UnboundVarE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)))))) :+: (((C1 ('MetaCons "LabelE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :+: C1 ('MetaCons "ImplicitParamVarE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))) :+: (C1 ('MetaCons "GetFieldE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :+: (C1 ('MetaCons "ProjectionE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty String))) :+: C1 ('MetaCons "TypedBracketE" 'PrefixI 'False) ( |
S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))))) :+: ((C1 ('MetaCons "TypedSpliceE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons "TypeE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :+: (C1 ('MetaCons "ForallE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr Specificity]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: (C1 ('MetaCons "ForallVisE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr ()]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons "ConstrainedE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Exp]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)))))))) |
А case-альтернатива
Экземпляры
| Ppr Match Источник | |||||
| Eq Match Источник | |||||
| Ord Match Источник | |||||
Определён в GHC.Internal.TH.Syntax | |||||
| Data Match Источник | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Match -> c Match Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Match Источник toConstr :: Match -> Constr Источник dataTypeOf :: Match -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Match) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Match) Источник gmapT :: (forall b. Data b => b -> b) -> Match -> Match Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Match -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Match -> r Источник gmapQ :: (forall d. Data d => d -> u) -> Match -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> Match -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> Match -> m Match Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Match -> m Match Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Match -> m Match Источник | |||||
| Generic Match Источник | |||||
Определён в GHC.Internal.TH.Syntax Ассоциированные типы
| |||||
| Show Match Источник | |||||
| Lift Match Источник | Начиная с: template-haskell-2.22.1.0 |
||||
| type Rep Match Источник | |||||
Определён в GHC.Internal.TH.Syntax type Rep Match = D1 ('MetaData "Match" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "Match" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Body) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec])))) | |||||
Предложение состоит из образцов, защитных условий, выражения тела и списка объявлений внутри where. Предложения встречаются в уравнениях определений функций, case-выражениях, явно двунаправленных синонимах образцов и т. д.
Экземпляры
| Ppr Clause Источник | |||||
| Eq Clause Источник | |||||
| Ord Clause Источник | |||||
| Data Clause Источник | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Clause -> c Clause Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Clause Источник toConstr :: Clause -> Constr Источник dataTypeOf :: Clause -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Clause) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Clause) Источник gmapT :: (forall b. Data b => b -> b) -> Clause -> Clause Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Clause -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Clause -> r Источник gmapQ :: (forall d. Data d => d -> u) -> Clause -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> Clause -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> Clause -> m Clause Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Clause -> m Clause Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Clause -> m Clause Источник | |||||
| Generic Clause Источник | |||||
Определён в GHC.Internal.TH.Syntax Ассоциированные типы
| |||||
| Show Clause Источник | |||||
| Lift Clause Источник | Начиная с: template-haskell-2.22.1.0 |
||||
| type Rep Clause Источник | |||||
Определён в GHC.Internal.TH.Syntax type Rep Clause = D1 ('MetaData "Clause" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "Clause" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pat]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Body) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec])))) | |||||
Короче говоря, Q предоставляет пользователю операции Quasi в рамках одного удобного монада.
Если говорить подробнее, Q оборачивает произвольную монаду с поддержкой Quasi. Внимательный читатель заметит, что у Quasi есть только два экземпляра: сам Q и IO, причём ни один из них не имеет конкретных реализаций. Q использует принцип инверсии зависимостей, предоставляя пользователю абстрактный интерфейс, который позднее получает конкретную реализацию в виде экземпляра Quasi, внутреннего для GHC.
Экземпляры
| Applicative Q Исходный код | |
Определён в GHC.Internal.TH.Syntax Методыpure :: a -> Q a Исходный код (<*>) :: Q (a -> b) -> Q a -> Q b Исходный код liftA2 :: (a -> b -> c) -> Q a -> Q b -> Q c Исходный код (*>) :: Q a -> Q b -> Q b Исходный код (<*) :: Q a -> Q b -> Q a Исходный код | |
| Functor Q Исходный код | |
Определён в GHC.Internal.TH.Syntax | |
| Monad Q Исходный код | |
Определён в GHC.Internal.TH.Syntax Методы(>>=) :: Q a -> (a -> Q b) -> Q b Исходный код (>>) :: Q a -> Q b -> Q b Исходный код return :: a -> Q a Исходный код | |
| MonadFail Q Исходный код | |
Определён в GHC.Internal.TH.Syntax Методыfail :: HasCallStack => String -> Q a Исходный код | |
| MonadFix Q Исходный код |
Если функция, переданная в Начиная с: ghc-internal-2.17.0.0 |
Определён в GHC.Internal.TH.Syntax Методыmfix :: (a -> Q a) -> Q a Исходный код | |
| MonadIO Q Исходный код | |
Определён в GHC.Internal.TH.Syntax МетодыliftIO :: IO a -> Q a Исходный код | |
| Quasi Q Исходный код | |
Определён в GHC.Internal.TH.Syntax МетодыqNewName :: String -> Q Name Исходный код qReport :: Bool -> String -> Q () Исходный код qRecover :: Q a -> Q a -> Q a Исходный код qLookupName :: Bool -> String -> Q (Maybe Name) Исходный код qReify :: Name -> Q Info Исходный код qReifyFixity :: Name -> Q (Maybe Fixity) Исходный код qReifyType :: Name -> Q Type Исходный код qReifyInstances :: Name -> [Type] -> Q [Dec] Исходный код qReifyRoles :: Name -> Q [Role] Исходный код qReifyAnnotations :: Data a => AnnLookup -> Q [a] Исходный код qReifyModule :: Module -> Q ModuleInfo Исходный код qReifyConStrictness :: Name -> Q [DecidedStrictness] Исходный код qLocation :: Q Loc Исходный код qRunIO :: IO a -> Q a Исходный код qGetPackageRoot :: Q FilePath Исходный код qAddDependentFile :: FilePath -> Q () Исходный код qAddTempFile :: String -> Q FilePath Исходный код qAddTopDecls :: [Dec] -> Q () Исходный код qAddForeignFilePath :: ForeignSrcLang -> String -> Q () Исходный код qAddModFinalizer :: Q () -> Q () Исходный код qAddCorePlugin :: String -> Q () Исходный код qGetQ :: Typeable a => Q (Maybe a) Исходный код qPutQ :: Typeable a => a -> Q () Исходный код qIsExtEnabled :: Extension -> Q Bool Исходный код qExtsEnabled :: Q [Extension] Исходный код qPutDoc :: DocLoc -> String -> Q () Исходный код | |
| Quote Q Исходный код | |
Определён в GHC.Internal.TH.Syntax МетодыnewName :: String -> Q Name Исходный код | |
| Monoid a => Monoid (Q a) Исходный код | Начиная с: ghc-internal-2.17.0.0 |
Определён в GHC.Internal.TH.Syntax Методыmempty :: Q a Исходный код mappend :: Q a -> Q a -> Q a Исходный код mconcat :: [Q a] -> Q a Исходный код | |
| Semigroup a => Semigroup (Q a) Исходный код | Начиная с: ghc-internal-2.17.0.0 |
Определён в GHC.Internal.TH.Syntax Методы(<>) :: Q a -> Q a -> Q a Исходный код sconcat :: NonEmpty (Q a) -> Q a Исходный код stimes :: Integral b => b -> Q a -> Q a Исходный код | |
data Pat Исходный код
Шаблон в Haskell, заданный в {}
Конструкторы
| LitP Lit | { 5 or 'c' } |
| VarP Name | { x } |
| TupP [Pat] | { (p1,p2) } |
| UnboxedTupP [Pat] | { (# p1,p2 #) } |
| UnboxedSumP Pat SumAlt SumArity | { (#|p|#) } |
| ConP Name [Type] [Pat] | data T1 = C1 t1 t2; {C1 @ty1 p1 p2} = e |
| InfixP Pat Name Pat | foo ({x :+ y}) = e |
| UInfixP Pat Name Pat |
foo ({x :+ y}) = e
|
| ParensP Pat |
{(p)}
|
| TildeP Pat | { ~p } |
| BangP Pat | { !p } |
| AsP Name Pat | { x @ p } |
| WildP | { _ } |
| RecP Name [FieldPat] | f (Pt { pointx = x }) = g x |
| ListP [Pat] | { [1,2,3] } |
| SigP Pat Type | { p :: t } |
| ViewP Exp Pat | { e -> p } |
| TypeP Type | { type p } |
| InvisP Type |
|
| OrP (NonEmpty Pat) | { p1; p2 } |
Экземпляры
| Ppr Pat Исходный код | |||||
Определён в GHC.Boot.TH.Ppr | |||||
| Eq Pat Исходный код | |||||
Определён в GHC.Internal.TH.Syntax | |||||
| Ord Pat Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методыcompare :: Pat -> Pat -> Ordering Исходный код (<) :: Pat -> Pat -> Bool Исходный код (<=) :: Pat -> Pat -> Bool Исходный код (>) :: Pat -> Pat -> Bool Исходный код (>=) :: Pat -> Pat -> Bool Исходный код max :: Pat -> Pat -> Pat Исходный код min :: Pat -> Pat -> Pat Исходный код | |||||
| Data Pat Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Pat -> c Pat Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Pat Исходный код toConstr :: Pat -> Constr Исходный код dataTypeOf :: Pat -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Pat) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Pat) Исходный код gmapT :: (forall b. Data b => b -> b) -> Pat -> Pat Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Pat -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Pat -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> Pat -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> Pat -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> Pat -> m Pat Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Pat -> m Pat Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Pat -> m Pat Исходный код | |||||
| Generic Pat Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
| |||||
|
| |||
| Show Pat Источник | |||
| Lift Pat Источник | Начиная с: template-haskell-2.22.1.0 |
||
| type Rep Pat Источник | |||
Определено в GHC.Internal.TH.Syntax | |||
type Rep Pat = D1 ('MetaData "Pat" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) ((((C1 ('MetaCons "LitP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Lit)) :+: C1 ('MetaCons "VarP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))) :+: (C1 ('MetaCons "TupP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pat])) :+: (C1 ('MetaCons "UnboxedTupP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pat])) :+: C1 ('MetaCons "UnboxedSumP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SumAlt) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SumArity)))))) :+: ((C1 ('MetaCons "ConP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Type]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pat]))) :+: C1 ('MetaCons "InfixP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'Rec0 Pat)))) :+: (C1 ('MetaCons "UInfixP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'Rec0 Pat))) :+: (C1 ('MetaCons "ParensP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'Rec0 Pat)) :+: C1 ('MetaCons "TildeP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'Rec0 Pat)))))) :+: (((C1 ('MetaCons "BangP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'Rec0 Pat)) :+: C1 ('MetaCons "AsP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'Rec0 Pat))) :+: (C1 ('MetaCons "WildP" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "RecP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'Rec0 [FieldPat])) :+: C1 ('MetaCons "ListP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'Rec0 [Pat]))))) :+: ((C1 ('MetaCons "SigP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'Rec0 Pat) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) ' |
NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "ViewP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat))) :+: (C1 ('MetaCons "TypeP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: (C1 ('MetaCons "InvisP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "OrP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty Pat)))))))) |
data Stmt Исходный код
Отдельное выражение, как в do-нотации.
Экземпляры
| Ppr Stmt Исходный код | |||||
Определён в GHC.Boot.TH.Ppr | |||||
| Eq Stmt Исходный код | |||||
Определён в GHC.Internal.TH.Syntax | |||||
| Ord Stmt Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методыcompare :: Stmt -> Stmt -> Ordering Исходный код (<) :: Stmt -> Stmt -> Bool Исходный код (<=) :: Stmt -> Stmt -> Bool Исходный код (>) :: Stmt -> Stmt -> Bool Исходный код (>=) :: Stmt -> Stmt -> Bool Исходный код max :: Stmt -> Stmt -> Stmt Исходный код min :: Stmt -> Stmt -> Stmt Исходный код | |||||
| Data Stmt Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Stmt -> c Stmt Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Stmt Исходный код toConstr :: Stmt -> Constr Исходный код dataTypeOf :: Stmt -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Stmt) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Stmt) Исходный код gmapT :: (forall b. Data b => b -> b) -> Stmt -> Stmt Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Stmt -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Stmt -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> Stmt -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> Stmt -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> Stmt -> m Stmt Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Stmt -> m Stmt Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Stmt -> m Stmt Исходный код | |||||
| Generic Stmt Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Show Stmt Исходный код | |||||
Определён в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> Stmt -> ShowS Исходный код show :: Stmt -> String Исходный код showList :: [Stmt] -> ShowS Исходный код | |||||
| Lift Stmt Исходный код | Начиная с: template-haskell-2.22.1.0 |
||||
Определён в GHC.Internal.TH.Lift | |||||
| type Rep Stmt Исходный код | |||||
Определено в GHC.Internal.TH.Syntax type Rep Stmt = D1 ('MetaData "Stmt" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) ((C1 ('MetaCons "BindS" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons "LetS" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec]))) :+: (C1 ('MetaCons "NoBindS" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: (C1 ('MetaCons "ParS" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [[Stmt]])) :+: C1 ('MetaCons "RecS" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Stmt]))))) |
data Con Исходный код
Конструктор данных.
Конструкторы для Con можно условно разделить на две категории: конструкторы с «обычным» синтаксисом (NormalC, RecC и InfixC) и конструкторы с синтаксисом GADT (GadtC и RecGadtC). Конструктор ForallC, который квантифицирует дополнительные переменные типов и контексты классов, может охватывать конструктор любого из этих видов. Однако квантифицируемые им переменные типов различаются в зависимости от используемого синтаксиса конструктора:
- Если
ForallCохватывает конструктор с обычным синтаксисом, тоForallCбудет квантифицировать только экзистенциальные переменные типов. Например:
data Foo a = forall b. MkFoo a b
В MkFoo ForallC будет квантифицировать b, но не a.
- Если
ForallCохватывает конструктор с синтаксисом GADT, тоForallCбудет квантифицировать все переменные типов, используемые в конструкторе. Например:
data Bar a b where
MkBar :: (a ~ b) => c -> MkBar a b
В MkBar ForallC будет квантифицировать a, b и c.
Аннотации кратности для типов данных в настоящее время не поддерживаются в Template Haskell (то есть все поля, представленные в Template Haskell, будут линейными).
Конструкторы
| NormalC Name [BangType] | C Int a |
| RecC Name [VarBangType] | C { v :: Int, w :: a } |
| InfixC BangType Name BangType | Int :+ a |
| ForallC [TyVarBndr Specificity] Cxt Con | forall a. Eq a => C [a] |
| GadtC | |
| RecGadtC | C :: { v :: Int } -> T b Int |
Поля
| |
Экземпляры
| Ppr Con Исходный код | |
Определено в GHC.Boot.TH.Ppr | |
| Eq Con Исходный код | |
Определено в GHC.Internal.TH.Syntax | |
| Ord Con Исходный код | |
Определено в GHC.Internal.TH.Syntax Методыcompare :: Con -> Con -> Ordering Исходный код (<) :: Con -> Con -> Bool Исходный код (<=) :: Con -> Con -> Bool Исходный код (>) :: Con -> Con -> Bool Исходный код (>=) :: Con -> Con -> Bool Исходный код max :: Con -> Con -> Con Исходный код min :: Con -> Con -> Con Исходный код | |
| Data Con Исходный код | |
Определено в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Con -> c Con Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Con Исходный код toConstr :: Con -> Constr Исходный код dataTypeOf :: Con -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Con) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Con) Исходный код gmapT :: (forall b. Data b => b -> b) -> Con -> Con Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Con -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Con -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> Con -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> Con -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> Con -> m Con Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Con -> m Con Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Con -> m Con Исходный код | |
| Generic Con Исходный код | |
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Show Con Исходный код | |||||
Определено в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> Con -> ShowS Исходный код show :: Con -> String Исходный код showList :: [Con] -> ShowS Исходный код | |||||
| Lift Con Исходный код | Начиная с: template-haskell-2.22.1.0 |
||||
Определено в GHC.Internal.TH.Lift | |||||
| type Rep Con Исходный код | |||||
Определено в GHC.Internal.TH.Syntax type Rep Con = D1 ('MetaData "Con" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) ((C1 ('MetaCons "NormalC" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [BangType])) :+: (C1 ('MetaCons "RecC" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [VarBangType])) :+: C1 ('MetaCons "InfixC" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BangType) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BangType))))) :+: (C1 ('MetaCons "ForallC" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr Specificity]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Con))) :+: (C1 ('MetaCons "GadtC" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [BangType]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :+: C1 ('MetaCons "RecGadtC" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [VarBangType]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))))) |
data Type Исходный код
Тип Haskell.
Конструкторы
| ForallT [TyVarBndr Specificity] Cxt Type | forall <vars>. <ctxt> => <type> |
| ForallVisT [TyVarBndr ()] Type | forall <vars> -> <type> |
| AppT Type Type | T a b |
| AppKindT Type Kind | T @k t |
| SigT Type Kind | t :: k |
| VarT Name | a |
| ConT Name | T |
| PromotedT Name | 'T |
| InfixT Type Name Type | T + T |
| UInfixT Type Name Type |
T + T |
| PromotedInfixT Type Name Type | T :+: T |
| PromotedUInfixT Type Name Type |
T :+: T |
| ParensT Type | (T) |
| TupleT Int |
|
| UnboxedTupleT Int |
|
| UnboxedSumT SumArity |
|
| ArrowT | -> |
| MulArrowT |
%n -> Обобщённый тип стрелки с аргументом кратности |
| EqualityT | ~ |
| ListT | [] |
| PromotedTupleT Int |
|
| PromotedNilT | '[] |
| PromotedConsT | '(:) |
| StarT | * |
| ConstraintT | Constraint |
| LitT TyLit |
|
| WildCardT | _ |
| ImplicitParamT String Type | ?x :: t |
Экземпляры
| Ppr Type Исходный код | |||||
Определено в GHC.Boot.TH.Ppr | |||||
| Eq Type Исходный код | |||||
Определено в GHC.Internal.TH.Syntax | |||||
| Ord Type Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Методыcompare :: Type -> Type -> Ordering Исходный код (<) :: Type -> Type -> Bool Исходный код (<=) :: Type -> Type -> Bool Исходный код (>) :: Type -> Type -> Bool Исходный код (>=) :: Type -> Type -> Bool Исходный код max :: Type -> Type -> Type Исходный код min :: Type -> Type -> Type Исходный код | |||||
| Data Type Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Type -> c Type Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Type Исходный код toConstr :: Type -> Constr Исходный код dataTypeOf :: Type -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Type) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Type) Исходный код gmapT :: (forall b. Data b => b -> b) -> Type -> Type Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Type -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Type -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> Type -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> Type -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> Type -> m Type Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Type -> m Type Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Type -> m Type Исходный код | |||||
| Generic Type Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
|
| |||
| Show Type Исходный код | |||
Определён в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> Type -> ShowS Исходный код show :: Type -> String Исходный код showList :: [Type] -> ShowS Исходный код | |||
| Lift Type Исходный код | Начиная с: template-haskell-2.22.1.0 |
||
Определён в GHC.Internal.TH.Lift | |||
| type Rep Type Исходный код | |||
Определён в GHC.Internal.TH.Syntax | |||
type Rep Type = D1 ('MetaData "Type" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) ((((C1 ('MetaCons "ForallT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr Specificity]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :+: (C1 ('MetaCons "ForallVisT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr ()]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "AppT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) :+: ((C1 ('MetaCons "AppKindT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Kind)) :+: C1 ('MetaCons "SigT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Kind))) :+: (C1 ('MetaCons "VarT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: C1 ('MetaCons "ConT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))))) :+: ((C1 ('MetaCons "PromotedT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: (C1 ('MetaCons "InfixT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :+: C1 ('MetaCons "UInfixT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))) :+: ((C1 ('MetaCons "PromotedInfixT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :+: C1 ('MetaCons "PromotedUInfixT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) :+: (C1 ('MetaCons "ParensT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness ' |
DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "TupleT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))))) :+: (((C1 ('MetaCons "UnboxedTupleT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :+: (C1 ('MetaCons "UnboxedSumT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SumArity)) :+: C1 ('MetaCons "ArrowT" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "MulArrowT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "EqualityT" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ListT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PromotedTupleT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))))) :+: ((C1 ('MetaCons "PromotedNilT" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "PromotedConsT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "StarT" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ConstraintT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LitT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TyLit))) :+: (C1 ('MetaCons "WildCardT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ImplicitParamT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))))) |
Одно объявление.
Конструкторы
| FunD Name [Clause] | { f p1 p2 = b where decs } |
| ValD Pat Body [Dec] | { p = b where decs } |
| DataD Cxt Name [TyVarBndr BndrVis] (Maybe Kind) [Con] [DerivClause] | { data Cxt x => T x = A x | B (T x)
deriving (Z,W)
deriving stock Eq } |
| NewtypeD Cxt Name [TyVarBndr BndrVis] (Maybe Kind) Con [DerivClause] | { newtype Cxt x => T x = A (B x)
deriving (Z,W Q)
deriving stock Eq } |
| TypeDataD Name [TyVarBndr BndrVis] (Maybe Kind) [Con] | { type data T x = A x | B (T x) } |
| TySynD Name [TyVarBndr BndrVis] Type | { type T x = (x,x) } |
| ClassD Cxt Name [TyVarBndr BndrVis] [FunDep] [Dec] | { class Eq a => Ord a where ds } |
| InstanceD (Maybe Overlap) Cxt Type [Dec] | { instance {-# OVERLAPS #-}
Show w => Show [w] where ds } |
| SigD Name Type | { length :: [a] -> Int } |
| KiSigD Name Kind | { type TypeRep :: k -> Type } |
| ForeignD Foreign | { foreign import ... }
{ foreign export ... } |
| InfixD Fixity NamespaceSpecifier Name | { infix 3 data foo } |
| DefaultD [Type] | { default (Integer, Double) } |
| PragmaD | прагмы |
Поля
| |
| DataFamilyD | семейства типов данных (также могут встречаться в [Dec] для |
| DataInstD Cxt (Maybe [TyVarBndr ()]) Type (Maybe Kind) [Con] [DerivClause] | { data instance Cxt x => T [x]
= A x | B (T x)
deriving (Z,W)
deriving stock Eq } |
| NewtypeInstD Cxt (Maybe [TyVarBndr ()]) Type (Maybe Kind) Con [DerivClause] | { newtype instance Cxt x => T [x]
= A (B x)
deriving (Z,W)
deriving stock Eq } |
| TySynInstD TySynEqn | { type instance ... } |
| OpenTypeFamilyD | открытые семейства типов (также могут встречаться в [Dec] для |
Поля
| |
| ClosedTypeFamilyD TypeFamilyHead [TySynEqn] | { type family F a b = (r :: *) | r -> a where ... } |
| RoleAnnotD Name [Role] | { type role T nominal representational } |
| StandaloneDerivD (Maybe DerivStrategy) Cxt Type | { deriving stock instance Ord a => Ord (Foo a) } |
| DefaultSigD Name Type | { default size :: Data a => a -> Int } |
| PatSynD | Синонимы образцов |
Поля
| |
| PatSynSigD Name PatSynType | Сигнатура типа синонима образца. |
| ImplicitParamBindD String Exp |
{ ?x = expr }
Объявление привязки неявного параметра. Может использоваться только в выражениях let и where, состоящих исключительно из неявных привязок. |
Экземпляры
| Ppr Dec Источник | |||||
| Eq Dec Источник | |||||
| Ord Dec Источник | |||||
| Data Dec Источник | |||||
Определено в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Dec -> c Dec Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Dec Источник toConstr :: Dec -> Constr Источник dataTypeOf :: Dec -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Dec) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Dec) Источник gmapT :: (forall b. Data b => b -> b) -> Dec -> Dec Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Dec -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Dec -> r Источник gmapQ :: (forall d. Data d => d -> u) -> Dec -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> Dec -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> Dec -> m Dec Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Dec -> m Dec Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Dec -> m Dec Источник | |||||
| Generic Dec Источник | |||||
Определено в GHC.Internal.TH.Syntax Ассоциированные типы
| |||||
|
|
| |||
| Show Dec Источник | |||
| Lift Dec Источник | С версии: template-haskell-2.22.1.0 |
||
| type Rep Dec Источник | |||
Определён в GHC.Internal.TH.Syntax | |||
type Rep Dec = D1 ('MetaData "Dec" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) ((((C1 ('MetaCons "FunD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Clause])) :+: (C1 ('MetaCons "ValD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Body) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec]))) :+: C1 ('MetaCons "DataD" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis]))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Kind)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Con]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [DerivClause])))))) :+: (C1 ('MetaCons "NewtypeD" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis]))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Kind)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Con) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [DerivClause])))) :+: (C1 ('MetaCons "TypeDataD" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis])) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Kind)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Con]))) :+: C1 ('MetaCons "TySynD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))))) :+: ((C1 ('MetaCons "ClassD" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FunDep]) :*: S1 (' |
MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec])))) :+: (C1 ('MetaCons "InstanceD" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Overlap)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec]))) :+: C1 ('MetaCons "SigD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) :+: ((C1 ('MetaCons "KiSigD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Kind)) :+: C1 ('MetaCons "ForeignD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Foreign))) :+: (C1 ('MetaCons "InfixD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Fixity) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NamespaceSpecifier) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))) :+: C1 ('MetaCons "DefaultD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Type])))))) :+: (((C1 ('MetaCons "PragmaD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pragma)) :+: (C1 ('MetaCons "DataFamilyD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Kind)))) :+: C1 ('MetaCons "DataInstD" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [TyVarBndr ()])) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Kind)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Con]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [DerivClause])))))) :+: (C1 ('MetaCons "NewtypeInstD" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [TyVarBndr ()])) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ( |
Maybe Kind)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Con) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [DerivClause])))) :+: (C1 ('MetaCons "TySynInstD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TySynEqn)) :+: C1 ('MetaCons "OpenTypeFamilyD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TypeFamilyHead))))) :+: ((C1 ('MetaCons "ClosedTypeFamilyD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TypeFamilyHead) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TySynEqn])) :+: (C1 ('MetaCons "RoleAnnotD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Role])) :+: C1 ('MetaCons "StandaloneDerivD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe DerivStrategy)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))) :+: ((C1 ('MetaCons "DefaultSigD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "PatSynD" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PatSynArgs)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PatSynDir) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat)))) :+: (C1 ('MetaCons "PatSynSigD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PatSynType)) :+: C1 ('MetaCons "ImplicitParamBindD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))))))) |
type BangType = (Bang, Type) Исходный код
Тип с аннотацией строгости, как в конструкторах данных. См. Con.
type VarBangType = (Name, Bang, Type) Исходный код
BangType, но для полей записей. См. Con.
type FieldExp = (Name, Exp) Исходный код
Пара (имя поля, выражение). См. RecConE и RecUpdE.
type FieldPat = (Name, Pat) Исходный код
Пара (имя поля, шаблон). См. RecP.
data Name Исходный код
Абстрактный тип, представляющий имена в синтаксическом дереве.
Объекты типа Name можно создавать несколькими способами, обеспечивающими разные гарантии относительно захвата имён (см. Language.Haskell.TH.Syntax, где объясняется захват имён):
- для создания имён можно использовать встроенный синтаксис
'fи''T. Выражение'fзадаётName, ссылающееся на значениеf, находящееся в текущей области видимости, а''TзадаётName, ссылающееся на типT, находящийся в текущей области видимости. Эти имена никогда не могут быть захвачены. -
lookupValueNameиlookupTypeNameаналогичны соответственно'fи''T, но поискNames выполняется в момент запуска текущей подстановки. Эти имена никогда не могут быть захвачены. -
Монада
newNameгенерирует новое имя, которое никогда не может быть захвачено. -
mkNameгенерирует захватываемое имя.
Имена, созданные с помощью newName и mkName, можно использовать в связываниях (например, let x = ... или x -> ...), но имена, созданные с помощью lookupValueName, lookupTypeName, 'f, ''T, использовать нельзя.
Конструкторы
| Name OccName NameFlavour |
Экземпляры
| Ppr Name Источник | |||||
| Eq Name Источник | |||||
| Ord Name Источник | |||||
Определён в GHC.Internal.TH.Syntax | |||||
| Data Name Источник | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Name -> c Name Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Name Источник toConstr :: Name -> Constr Источник dataTypeOf :: Name -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Name) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Name) Источник gmapT :: (forall b. Data b => b -> b) -> Name -> Name Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Name -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Name -> r Источник gmapQ :: (forall d. Data d => d -> u) -> Name -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> Name -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> Name -> m Name Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Name -> m Name Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Name -> m Name Источник | |||||
| Generic Name Источник | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Show Name Источник | |||||
| Lift Name Источник | Начиная с: template-haskell-2.22.1.0 |
||||
| type Rep Name Источник | |||||
Определён в GHC.Internal.TH.Syntax type Rep Name = D1 ('MetaData "Name" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "Name" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OccName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NameFlavour))) | |||||
Синтаксис функциональной зависимости, используемый в объявлении класса.
Экземпляры
| Ppr FunDep Источник | |||||
| Eq FunDep Источник | |||||
| Ord FunDep Источник | |||||
Определено в GHC.Internal.TH.Syntax | |||||
| Data FunDep Источник | |||||
Определено в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FunDep -> c FunDep Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c FunDep Источник toConstr :: FunDep -> Constr Источник dataTypeOf :: FunDep -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c FunDep) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c FunDep) Источник gmapT :: (forall b. Data b => b -> b) -> FunDep -> FunDep Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FunDep -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FunDep -> r Источник gmapQ :: (forall d. Data d => d -> u) -> FunDep -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> FunDep -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> FunDep -> m FunDep Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FunDep -> m FunDep Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FunDep -> m FunDep Источник | |||||
| Generic FunDep Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Show FunDep Источник | |||||
| Lift FunDep Источник | С версии: template-haskell-2.22.1.0 |
||||
| type Rep FunDep Источник | |||||
Определено в GHC.Internal.TH.Syntax type Rep FunDep = D1 ('MetaData "FunDep" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "FunDep" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name]))) | |||||
Начиная с появления ConstraintKinds, ограничения на самом деле являются просто типами. В ограничениях равенства используется конструктор EqualityT. Ограничения также могут представлять собой кортежи других ограничений.
Связыватель, встречающийся в forall прагмы RULES.
Конструкторы
| RuleVar Name | forall {a} ... . |
| TypedRuleVar Name Type | forall {(a :: t)} ... . |
Экземпляры
| Ppr RuleBndr Источник | |||||
| Eq RuleBndr Источник | |||||
| Ord RuleBndr Источник | |||||
Определён в GHC.Internal.TH.Syntax | |||||
| Data RuleBndr Источник | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RuleBndr -> c RuleBndr Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RuleBndr Источник toConstr :: RuleBndr -> Constr Источник dataTypeOf :: RuleBndr -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c RuleBndr) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RuleBndr) Источник gmapT :: (forall b. Data b => b -> b) -> RuleBndr -> RuleBndr Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RuleBndr -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RuleBndr -> r Источник gmapQ :: (forall d. Data d => d -> u) -> RuleBndr -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> RuleBndr -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> RuleBndr -> m RuleBndr Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RuleBndr -> m RuleBndr Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RuleBndr -> m RuleBndr Источник | |||||
| Generic RuleBndr Источник | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Show RuleBndr Источник | |||||
| Lift RuleBndr Источник | Начиная с: template-haskell-2.22.1.0 |
||||
| type Rep RuleBndr Источник | |||||
Определён в GHC.Internal.TH.Syntax type Rep RuleBndr = D1 ('MetaData "RuleBndr" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "RuleVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: C1 ('MetaCons "TypedRuleVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) | |||||
Одно уравнение экземпляра семейства типов или замкнутого семейства типов. Аргументы — тип в левой части и результат в правой части.
Например, если бы у вас было следующее семейство типов:
type family Foo (a :: k) :: k where forall k (a :: k). Foo @k a = a
Уравнение Foo @k a = a было бы представлено следующим образом:
TySynEqn (Just [PlainTV k, KindedTV a (VarT k)]) (AppT (AppKindT (ConT ''Foo) (VarT k)) (VarT a)) (VarT a)
Экземпляры
| Eq TySynEqn Источник | |||||
| Ord TySynEqn Источник | |||||
Определён в GHC.Internal.TH.Syntax | |||||
| Data TySynEqn Источник | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TySynEqn -> c TySynEqn Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TySynEqn Источник toConstr :: TySynEqn -> Constr Источник dataTypeOf :: TySynEqn -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TySynEqn) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TySynEqn) Источник gmapT :: (forall b. Data b => b -> b) -> TySynEqn -> TySynEqn Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TySynEqn -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TySynEqn -> r Источник gmapQ :: (forall d. Data d => d -> u) -> TySynEqn -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> TySynEqn -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> TySynEqn -> m TySynEqn Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TySynEqn -> m TySynEqn Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TySynEqn -> m TySynEqn Источник | |||||
| Generic TySynEqn Источник | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Show TySynEqn Источник | |||||
| Lift TySynEqn Источник | Начиная с: template-haskell-2.22.1.0 |
||||
| type Rep TySynEqn Источник | |||||
Определён в GHC.Internal.TH.Syntax type Rep TySynEqn = D1 ('MetaData "TySynEqn" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "TySynEqn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [TyVarBndr ()])) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) | |||||
data InjectivityAnn Источник
Аннотация инъективности, используемая в инъективном семействе типов
Конструкторы
| InjectivityAnn Name [Name] |
Экземпляры
| Ppr InjectivityAnn Источник | |||||
Определён в GHC.Boot.TH.Ppr | |||||
| Eq InjectivityAnn Источник | |||||
Определён в GHC.Internal.TH.Syntax Методы(==) :: InjectivityAnn -> InjectivityAnn -> Bool Источник (/=) :: InjectivityAnn -> InjectivityAnn -> Bool Источник | |||||
| Ord InjectivityAnn Источник | |||||
Определён в GHC.Internal.TH.Syntax Методыcompare :: InjectivityAnn -> InjectivityAnn -> Ordering Источник (<) :: InjectivityAnn -> InjectivityAnn -> Bool Источник (<=) :: InjectivityAnn -> InjectivityAnn -> Bool Источник (>) :: InjectivityAnn -> InjectivityAnn -> Bool Источник (>=) :: InjectivityAnn -> InjectivityAnn -> Bool Источник max :: InjectivityAnn -> InjectivityAnn -> InjectivityAnn Источник min :: InjectivityAnn -> InjectivityAnn -> InjectivityAnn Источник | |||||
| Data InjectivityAnn Источник | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> InjectivityAnn -> c InjectivityAnn Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c InjectivityAnn Источник toConstr :: InjectivityAnn -> Constr Источник dataTypeOf :: InjectivityAnn -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c InjectivityAnn) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c InjectivityAnn) Источник gmapT :: (forall b. Data b => b -> b) -> InjectivityAnn -> InjectivityAnn Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> InjectivityAnn -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> InjectivityAnn -> r Источник gmapQ :: (forall d. Data d => d -> u) -> InjectivityAnn -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> InjectivityAnn -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> InjectivityAnn -> m InjectivityAnn Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> InjectivityAnn -> m InjectivityAnn Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> InjectivityAnn -> m InjectivityAnn Источник | |||||
| Generic InjectivityAnn Источник | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: InjectivityAnn -> Rep InjectivityAnn x Источник to :: Rep InjectivityAnn x -> InjectivityAnn Источник | |||||
| Show InjectivityAnn Источник | |||||
Определён в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> InjectivityAnn -> ShowS Источник show :: InjectivityAnn -> String Источник showList :: [InjectivityAnn] -> ShowS Источник | |||||
| Lift InjectivityAnn Источник | Начиная с: template-haskell-2.22.1.0 |
||||
Определён в GHC.Internal.TH.Lift Методыlift :: Quote m => InjectivityAnn -> m Exp Источник liftTyped :: forall (m :: Type -> Type). Quote m => InjectivityAnn -> Code m InjectivityAnn Источник | |||||
| type Rep InjectivityAnn Источник | |||||
Определён в GHC.Internal.TH.Syntax type Rep InjectivityAnn = D1 ('MetaData "InjectivityAnn" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "InjectivityAnn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name]))) | |||||
Чтобы избежать дублирования между видами и типами, они определены как одно и то же. Естественно, тип никогда не будет StarT, а вид никогда не будет SigT, однако многие другие конструкторы являются общими. Обратите внимание, что вид Bool обозначается как ConT, а не PromotedT. Аналогично, виды кортежей создаются с помощью TupleT, а не PromotedTupleT.
Варианты допустимого перекрытия экземпляров.
Конструкторы
| Overlappable | Может быть перекрыт более конкретными экземплярами |
| Overlapping | Может перекрывать более общий экземпляр |
| Overlaps | И |
| Incoherent | И |
Экземпляры
| Eq Overlap Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методы(==) :: Overlap -> Overlap -> Bool Исходный код (/=) :: Overlap -> Overlap -> Bool Исходный код | |||||
| Ord Overlap Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методыcompare :: Overlap -> Overlap -> Ordering Исходный код (<) :: Overlap -> Overlap -> Bool Исходный код (<=) :: Overlap -> Overlap -> Bool Исходный код (>) :: Overlap -> Overlap -> Bool Исходный код (>=) :: Overlap -> Overlap -> Bool Исходный код max :: Overlap -> Overlap -> Overlap Исходный код min :: Overlap -> Overlap -> Overlap Исходный код | |||||
| Data Overlap Исходный код | |||||
Определён в 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 Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Ассоциированные типы
| |||||
| Show Overlap Исходный код | |||||
Определён в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> Overlap -> ShowS Исходный код show :: Overlap -> String Исходный код showList :: [Overlap] -> ShowS Исходный код | |||||
| Lift Overlap Исходный код | Начиная с: template-haskell-2.22.1.0 |
||||
Определён в GHC.Internal.TH.Lift | |||||
| type Rep Overlap Исходный код | |||||
Определён в 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))) | |||||
data DerivClause Исходный код
Одна deriving-директива в конце объявления типа данных.
Конструкторы
| DerivClause (Maybe DerivStrategy) Cxt | { deriving stock (Eq, Ord) } |
Экземпляры
| Eq DerivClause Источник | |||||
Определён в GHC.Internal.TH.Syntax Методы(==) :: DerivClause -> DerivClause -> Bool Источник (/=) :: DerivClause -> DerivClause -> Bool Источник | |||||
| Ord DerivClause Источник | |||||
Определён в GHC.Internal.TH.Syntax Методыcompare :: DerivClause -> DerivClause -> Ordering Источник (<) :: DerivClause -> DerivClause -> Bool Источник (<=) :: DerivClause -> DerivClause -> Bool Источник (>) :: DerivClause -> DerivClause -> Bool Источник (>=) :: DerivClause -> DerivClause -> Bool Источник max :: DerivClause -> DerivClause -> DerivClause Источник min :: DerivClause -> DerivClause -> DerivClause Источник | |||||
| Data DerivClause Источник | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DerivClause -> c DerivClause Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DerivClause Источник toConstr :: DerivClause -> Constr Источник dataTypeOf :: DerivClause -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DerivClause) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DerivClause) Источник gmapT :: (forall b. Data b => b -> b) -> DerivClause -> DerivClause Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DerivClause -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DerivClause -> r Источник gmapQ :: (forall d. Data d => d -> u) -> DerivClause -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> DerivClause -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> DerivClause -> m DerivClause Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DerivClause -> m DerivClause Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DerivClause -> m DerivClause Источник | |||||
| Generic DerivClause Источник | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: DerivClause -> Rep DerivClause x Источник to :: Rep DerivClause x -> DerivClause Источник | |||||
| Show DerivClause Источник | |||||
Определён в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> DerivClause -> ShowS Источник show :: DerivClause -> String Источник showList :: [DerivClause] -> ShowS Источник | |||||
| Lift DerivClause Источник | Since: template-haskell-2.22.1.0 |
||||
Определён в GHC.Internal.TH.Lift Методыlift :: Quote m => DerivClause -> m Exp Источник liftTyped :: forall (m :: Type -> Type). Quote m => DerivClause -> Code m DerivClause Источник | |||||
| type Rep DerivClause Источник | |||||
Определён в GHC.Internal.TH.Syntax type Rep DerivClause = D1 ('MetaData "DerivClause" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "DerivClause" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe DerivStrategy)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt))) | |||||
data DerivStrategy Источник
Что пользователь явно запрашивает при выведении экземпляра с помощью -XDerivingStrategies.
Конструкторы
| StockStrategy | deriving {stock} C |
| AnyclassStrategy |
|
| NewtypeStrategy |
|
| ViaStrategy Type |
|
Экземпляры
| Eq DerivStrategy Источник | |||||
Определён в GHC.Internal.TH.Syntax Методы(==) :: DerivStrategy -> DerivStrategy -> Bool Источник (/=) :: DerivStrategy -> DerivStrategy -> Bool Источник | |||||
| Ord DerivStrategy Источник | |||||
Определён в 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 Источник | |||||
| Data DerivStrategy Источник | |||||
Определён в 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 Источник | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: DerivStrategy -> Rep DerivStrategy x Источник to :: Rep DerivStrategy x -> DerivStrategy Источник | |||||
| Show DerivStrategy Источник | |||||
Определён в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> DerivStrategy -> ShowS Источник show :: DerivStrategy -> String Источник showList :: [DerivStrategy] -> ShowS Источник | |||||
| Lift DerivStrategy Источник | Начиная с: template-haskell-2.22.1.0 |
||||
Определён в GHC.Internal.TH.Lift Методыlift :: Quote m => DerivStrategy -> m Exp Источник liftTyped :: forall (m :: Type -> Type). Quote m => DerivStrategy -> Code m DerivStrategy Источник | |||||
| type Rep DerivStrategy Источник | |||||
Определён в 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)))) | |||||
newtype Code (m :: Type -> Type) (a :: TYPE r) Источник
Представляет выражение типа a, построенное в монадическом контексте m. Типизированные выражения построены на основе TExp и позволяют выполнять безопасную с точки зрения типов подстановку с помощью:
- типизированных кавычек, записываемых как
[|| ... ||], где...— выражение; если это выражение имеет типa, то кавычка имеет типQuote m => Code m a - типизированных подстановок внутри типизированных кавычек, записываемых как
$$(...), где...— произвольное выражение типаQuote m => Code m a
Традиционные кавычки и подстановки выражений позволяют создавать некорректно типизированные выражения:
>>> fmap ppr $ runQ (unTypeCode [| True == $( [| "foo" |] ) |])
GHC.Internal.Types.True GHC.Internal.Classes.== "foo"
>>> GHC.Internal.Types.True GHC.Internal.Classes.== "foo"
<interactive> error:
• Couldn't match expected type ‘Bool’ with actual type ‘[Char]’
• In the second argument of ‘(==)’, namely ‘"foo"’
In the expression: True == "foo"
In an equation for ‘it’: it = True == "foo"
Для типизированных выражений ошибка типов возникает при создании выражения Template Haskell:
>>> fmap ppr $ runQ (unTypeCode [|| True == $$( [|| "foo" ||] ) ||])
<interactive> error:
• Couldn't match type ‘[Char]’ with ‘Bool’
Expected type: Code Q Bool
Actual type: Code Q [Char]
• In the Template Haskell quotation [|| "foo" ||]
In the expression: [|| "foo" ||]
In the Template Haskell splice $$([|| "foo" ||])
Конструкторы
| Code | |
Поля
| |
newtype ModName Исходный код
Имя модуля.
Экземпляры
| Eq ModName Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методы(==) :: ModName -> ModName -> Bool Исходный код (/=) :: ModName -> ModName -> Bool Исходный код | |||||
| Ord ModName Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методыcompare :: ModName -> ModName -> Ordering Исходный код (<) :: ModName -> ModName -> Bool Исходный код (<=) :: ModName -> ModName -> Bool Исходный код (>) :: ModName -> ModName -> Bool Исходный код (>=) :: ModName -> ModName -> Bool Исходный код max :: ModName -> ModName -> ModName Исходный код min :: ModName -> ModName -> ModName Исходный код | |||||
| Data ModName Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ModName -> c ModName Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ModName Исходный код toConstr :: ModName -> Constr Исходный код dataTypeOf :: ModName -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ModName) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ModName) Исходный код gmapT :: (forall b. Data b => b -> b) -> ModName -> ModName Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ModName -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ModName -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> ModName -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> ModName -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> ModName -> m ModName Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ModName -> m ModName Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ModName -> m ModName Исходный код | |||||
| Generic ModName Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Show ModName Исходный код | |||||
Определён в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> ModName -> ShowS Исходный код show :: ModName -> String Исходный код showList :: [ModName] -> ShowS Исходный код | |||||
| Lift ModName Исходный код | Начиная с: template-haskell-2.22.1.0 |
||||
Определён в GHC.Internal.TH.Lift | |||||
| type Rep ModName Исходный код | |||||
Определён в GHC.Internal.TH.Syntax | |||||
addCorePlugin :: String -> Q () Исходный код
Добавляет плагин ядра в конвейер компиляции.
addCorePlugin m имеет почти тот же эффект, что и передача -fplugin=m компилятору ghc в командной строке. Главное различие заключается в том, что модуль плагина m не должен принадлежать текущему пакету. Когда выполняется TH, уже слишком поздно сообщать компилятору, что сначала нужно скомпилировать модуль плагина из текущего пакета.
addDependentFile :: FilePath -> Q () Исходный код
Регистрирует внешние файлы, которые использует runIO (от которых он зависит). Тогда компилятор сможет определить, что Haskell-файл нужно перекомпилировать при изменении внешнего файла.
Ожидает абсолютный путь к файлу.
Примечания:
- ghc -M не учитывает эти зависимости — он не выполняет TH.
- Зависимость определяется по содержимому файла, а не по времени его изменения.
addForeignFile :: ForeignSrcLang -> String -> Q () Исходный код
Устарело: вместо этого используйте addForeignSource
addForeignFilePath :: ForeignSrcLang -> FilePath -> Q () Исходный код
То же, что и addForeignSource, но в качестве аргумента ожидает путь к внешнему файлу, а не String его содержимого. Рекомендуется использовать в сочетании с addTempFile.
Это хорошая альтернатива addForeignSource, если вы пытаетесь напрямую связать объектный файл.
addForeignSource :: ForeignSrcLang -> String -> Q () Исходный код
Создаёт внешний файл, который будет скомпилирован и скомпонован с объектным файлом текущего модуля. В настоящее время поддерживаются только языки, которые можно компилировать компилятором C; флаги, переданные с помощью -optc, также будут применяться при вызове компилятора C для их компиляции.
Обратите внимание: для языков, отличных от C (например, C++), необходимо использовать директивы extern C, чтобы получить символы, к которым можно обращаться из Haskell.
Чтобы сообщения об ошибках были информативнее, при создании файлов C рекомендуется использовать директивы #line, например:
{-# LANGUAGE CPP #-}
...
addForeignSource LangC $ unlines
[ "#line " ++ show (865 + 1) ++ " " ++ show "libraries/ghc-internal/src/GHC/Internal/TH/Syntax.hs"
, ...
]
addModFinalizer :: Q () -> Q () Исходный код
Добавляет финализатор, который будет выполнен в монаде Q после проверки типов текущего модуля. Это имеет смысл только при выполнении внутри сплайса верхнего уровня.
Финализатору передаётся локальное окружение типов в точке сплайса. Поэтому reify может находить локальные определения при выполнении внутри финализатора.
addTempFile :: String -> Q FilePath Исходный код
Возвращает путь к временному файлу с указанным суффиксом. Компилятор удалит этот файл после компиляции.
addTopDecls :: [Dec] -> Q () Исходный код
Добавляет дополнительные объявления верхнего уровня. Добавленные объявления будут проверены на типы вместе с текущей группой объявлений.
badIO :: String -> IO a Исходный код
bindCode :: Monad m => m a -> (a -> Code m b) -> Code m b Исходный код
Вариант (>>=), позволяющий внедрять вычисления с побочными эффектами в генерацию кода.
bindCode_ :: Monad m => m a -> Code m b -> Code m b Исходный код
Вариант (>>), позволяющий внедрять вычисления с побочными эффектами в генерацию кода.
cmpEq :: Ordering -> Bool Исходный код
Внутренняя вспомогательная функция.
compareBytes :: Bytes -> Bytes -> Ordering Исходный код
counter :: IORef Uniq Исходный код
defaultFixity :: Fixity Исходный код
Фикситет по умолчанию: infixl 9
eqBytes :: Bytes -> Bytes -> Bool Исходный код
extsEnabled :: Q [Extension] Исходный код
Возвращает список всех включённых языковых расширений.
getDoc :: DocLoc -> Q (Maybe String) Исходный код
Возвращает документацию Haddock для указанного места, если она существует. С её помощью можно читать документацию об элементах, определённых вне текущего модуля, при условии, что эти модули были скомпилированы с флагом -haddock.
getPackageRoot :: Q FilePath Исходный код
Возвращает корневой каталог текущего компилируемого пакета. Его можно явно задать с помощью флага -package-root, но обычно это просто текущий рабочий каталог.
Этот флаг нужен для того, чтобы предоставить обоснованный способ устранить предположение, что сплайсы будут выполняться в каталоге, где находится файл cabal. Такие проекты, как haskell-language-server, не могут и не меняют каталог при компиляции файлов, а вместо этого соответствующим образом задают флаг -package-root.
getQ :: Typeable a => Q (Maybe a) Исходный код
Получает состояние из монады Q. Обратите внимание, что состояние локально для модуля Haskell, в котором выполняется выражение Template Haskell.
get_cons_names :: Con -> [Name] Исходный код
Внутренняя вспомогательная функция.
hoistCode :: Monad m => (forall x. m x -> n x) -> Code m a -> Code n a Исходный код
Изменяет используемую при генерации кода окружающую монаду. Например, можно использовать hoistCode для обработки эффекта состояния:
handleState :: Code (StateT Int Q) a -> Code Q a
handleState = hoistCode (flip runState 0)
isExtEnabled :: Extension -> Q Bool Исходный код
Определяет, включено ли указанное языковое расширение в монаде Q.
isInstance :: Name -> [Type] -> Q Bool Исходный код
Пуст ли список экземпляров, возвращаемый reifyInstances?
Если вы не понимаете, почему экземпляр не виден, хотя он определён в том же модуле выше рассматриваемого сплайса, возможное объяснение см. в документации к newDeclarationGroup.
joinCode :: Monad m => m (Code m a) -> Code m a Исходный код
Полезный комбинатор для встраивания действий в монаде в Code
myCode :: ... => Code m a
myCode = joinCode $ do
x <- someSideEffect
return (makeCodeWith x)
liftCode :: forall a m. m (TExp a) -> Code m a Исходный код
Поднимает действие в монаде, создающее код, до типизированного представления Code
location :: Q Loc Исходный код
Место, в котором выполняется подстановка этого вычисления.
lookupName :: Bool -> String -> Q (Maybe Name) Исходный код
lookupTypeName :: String -> Q (Maybe Name) Исходный код
Ищет указанное имя в области видимости текущего сплайса (в пространстве имён типов). Подробнее см. в разделе Language.Haskell.TH.Syntax.
lookupValueName :: String -> Q (Maybe Name) Исходный код
Ищет указанное имя в области видимости текущего сплайса (в пространстве имён значений). Подробнее см. в разделе Language.Haskell.TH.Syntax.
Синоним для 'Many из ghc-internal.
maxPrecedence :: Int Исходный код
Наивысший допустимый приоритет оператора для конструктора Fixity (ответ: 9)
memcmp :: Ptr a -> Ptr b -> CSize -> IO CInt Исходный код
mkNameG :: NameSpace -> String -> String -> String -> Name Исходный код
Используется для 'x и подобных имён, но недоступен программисту
mkNameU :: String -> Uniq -> Name Исходный код
Используется только внутри программы
mkOccName :: String -> OccName Исходный код
Умный конструктор для OccName
mkPkgName :: String -> PkgName Исходный код
Умный конструктор для PkgName
mk_tup_name :: Int -> NameSpace -> Bool -> Name Исходный код
mkName :: String -> Name Исходный код
Создаёт захватываемое имя. Вхождения таких имён разрешаются согласно правилам видимости Haskell в месте вхождения.
Например:
f = [| pi + $(varE (mkName "pi")) |] ... g = let pi = 3 in $f
В этом случае g преобразуется в
g = Prelude.pi + 3
Обратите внимание, что mkName можно использовать с квалифицированными именами:
mkName "Prelude.pi"
Полезный комбинатор см. также в dyn. Приведённый выше пример можно переписать с помощью dyn следующим образом:
f = [| pi + $(dyn "pi") |]
mkNameG_v :: String -> String -> String -> Name Исходный код
mkNameG_d :: String -> String -> String -> Name Исходный код
mkNameG_tc :: String -> String -> String -> Name Исходный код
mkNameL :: String -> Uniq -> Name Исходный код
Используется только внутри программы
mkNameS :: String -> Name Исходный код
unTypeCode :: forall a m. Quote m => Code m a -> m Exp Исходный код
Извлекает нетипизированное представление из типизированного представления
mkModName :: String -> ModName Исходный код
Умный конструктор для ModName
unsafeCodeCoerce :: forall a m. Quote m => m Exp -> Code m a Исходный код
Небезопасно преобразует нетипизированное представление кода в типизированное представление кода.
mkNameQ :: String -> String -> Name Исходный код
Используется только внутри программы
Аргументы
| :: String | пакет |
| -> String | модуль |
| -> String | родитель (первый конструктор родительского типа) |
| -> String | имя поля |
| -> Name |
modString :: ModName -> String Исходный код
Селектор для ModName
nameBase :: Name -> String Исходный код
Имя без префикса модуля.
Примеры
>>> nameBase ''Data.Either.Either "Either" >>> nameBase (mkName "foo") "foo" >>> nameBase (mkName "Module.foo") "foo"
nameModule :: Name -> Maybe String Исходный код
Префикс модуля имени, если он существует.
Примеры
>>> nameModule ''Data.Either.Either Just "Data.Either" >>> nameModule (mkName "foo") Nothing >>> nameModule (mkName "Module.foo") Just "Module"
namePackage :: Name -> Maybe String Исходный код
Пакет имени, если он существует.
Примеры
>>> namePackage ''Data.Either.Either Just "base" >>> namePackage (mkName "foo") Nothing >>> namePackage (mkName "Module.foo") Nothing
nameSpace :: Name -> Maybe NameSpace Исходный код
Возвращает, обозначает ли имя вхождение переменной верхнего уровня (VarName), конструктора данных (DataName), конструктора типа или класса типов (TcClsName). Если определить это нельзя, возвращает Nothing.
Примеры
>>> nameSpace 'Prelude.id Just VarName >>> nameSpace (mkName "id") Nothing -- only works for top-level variable names >>> nameSpace 'Data.Maybe.Just Just DataName >>> nameSpace ''Data.Maybe.Maybe Just TcClsName >>> nameSpace ''Data.Ord.Ord Just TcClsName
newDeclarationGroup :: Q [Dec] Исходный код
Template Haskell может получать сведения о типах и термах, определённых в предыдущих группах объявлений. Сплайсы объявлений верхнего уровня разделяют группы объявлений.
Рассмотрим этот фрагмент кода. Мы определяем тип данных X, а затем пытаемся вызвать reify для этого типа данных.
module Check where
data X = X
deriving Eq
$(do
info <- reify ''X
runIO $ print info
)
Этот код не компилируется: X недоступен для реификации в месте reify. Это можно исправить, создав новую группу объявлений с помощью пустого сплайса верхнего уровня:
data X = X
deriving Eq
$(pure [])
$(do
info <- reify ''X
runIO $ print info
)
Мы предоставляем newDeclarationGroup для документирования такого поведения и обозначения этого шаблона.
Поскольку сплайсы верхнего уровня подразумевают наличие скобок $( ... ), можно также написать:
data X = X
deriving Eq
newDeclarationGroup
$(do
info <- reify ''X
runIO $ print info
)
newNameIO :: String -> IO Name Исходный код
occString :: OccName -> String Исходный код
Селектор для OccName
Синоним для 'One из ghc-internal.
pkgString :: PkgName -> String Исходный код
Селектор для PkgName
putDoc :: DocLoc -> String -> Q () Исходный код
Добавляет документацию Haddock в указанное место. Если в этом месте уже есть документация, она будет заменена. Для этого будет выполнено reify указанного имени, поэтому оно должно находиться в области видимости при вызове функции. Если вы хотите добавить документацию к объекту, который в данный момент подвергается сплайсингу, можно использовать addModFinalizer, например:
do let nm = mkName "x" addModFinalizer $ putDoc (DeclDoc nm) "Hello" [d| $(varP nm) = 42 |]
Вспомогательные функции withDecDoc и withDecsDoc сделают это за вас, как и комбинаторы funD_doc и другие _doc. При их использовании, скорее всего, следует включить флаг -haddock. Добавление документации к чему-либо за пределами текущего модуля вызовет ошибку.
putQ :: Typeable a => a -> Q () Исходный код
Заменяет состояние в монаде Q. Обратите внимание, что состояние локально для модуля Haskell, в котором выполняется выражение Template Haskell.
Позволяет восстановиться после ошибок, вызванных reportError или fail.
reify :: Name -> Q Info Исходный код
reify ищет информацию о Name. Если Name не видимо, произойдёт ошибка компиляции. Name считается видимым, если оно импортировано или определено в предшествующей группе объявлений верхнего уровня. Подробнее см. документацию по newDeclarationGroup.
Иногда полезно создать имя аргумента с помощью lookupTypeName или lookupValueName, чтобы гарантировать, что reify выполняется в правильном пространстве имён. Например, в следующем контексте:
data D = D
о каком D функция reify (mkName "D") возвращает информацию? (Ответ: D-типе, но не полагайтесь на это.) Чтобы получить информацию о D-значении, используйте lookupValueName:
do Just nm <- lookupValueName "D" reify nm
а чтобы получить информацию о D-типе, используйте lookupTypeName.
reifyAnnotations :: Data a => AnnLookup -> Q [a] Исходный код
reifyAnnotations target возвращает список аннотаций, связанных с target. Возвращаются только аннотации подходящего типа. Поэтому, если для одной цели имеются аннотации Int и String, эту функцию нужно вызвать дважды.
reifyConStrictness :: Name -> Q [DecidedStrictness] Исходный код
reifyConStrictness nm ищет информацию о строгости полей конструктора с именем nm. Обратите внимание, что информация о строгости, возвращаемая reifyConStrictness, может не соответствовать тому, что указано в исходном коде. Например, в следующем объявлении данных:
data Pair a = Pair a a
в большинстве случаев reifyConStrictness вернёт [DecidedLazy, DecidedLazy], но вернёт [DecidedStrict, DecidedStrict], если включено языковое расширение -XStrictData.
reifyFixity :: Name -> Q (Maybe Fixity) Исходный код
reifyFixity nm пытается найти объявление fixity для nm. Например, если для функции foo задано объявление fixity infixr 7 foo, то reifyFixity 'foo вернёт Just (Fixity 7 InfixR). Если для функции bar объявление fixity не задано, reifyFixity 'bar вернёт Nothing, поэтому можно считать, что bar имеет defaultFixity.
reifyInstances :: Name -> [Type] -> Q [InstanceDec] Исходный код
reifyInstances nm tys возвращает список всех видимых экземпляров (значение термина «видимые» см. ниже) nm tys. То есть если nm — имя класса типов, возвращаются все экземпляры этого класса для типов tys. Если же nm — имя семейства данных или семейства типов, возвращаются все экземпляры этого семейства для типов tys.
Обратите внимание, что это «поверхностная» проверка: возвращаемые объявления имеют лишь заголовки экземпляров, унифицируемые с nm tys; при этом они не обязательно выполнимы.
-
reifyInstances ''Eq [ TupleT 2 `AppT` ConT ''A `AppT` ConT ''B ]содержитinstance (Eq a, Eq b) => Eq (a, b)независимо от того, реализуют ли самиAиBинтерфейсEq -
reifyInstances ''Show [ VarT (mkName "a") ]возвращает каждый доступный экземплярShow
Есть один особый случай: reifyInstances ''Typeable tys всегда возвращает пустой список (независимо от того, какие tys переданы).
В принципе, *видимые* экземпляры — это * все экземпляры, определённые в предшествующей группе объявлений верхнего уровня (см. документацию по newDeclarationGroup), или * все экземпляры, определённые в любом модуле, транзитивно импортированном компилируемым модулем
Однако поиск во всех модулях, транзитивно расположенных ниже компилируемого модуля, обходится неоправданно дорого, поэтому reifyInstances сообщает только об экземплярах из модулей, которые GHC по какой-либо причине посещал во время этой компиляции. Это ограничение: reifyInstances может не сообщить об экземплярах для типа, который иначе не используется, или об экземплярах, определённых в другом компоненте. Обойти это ограничение можно, явно импортировав модули, экземпляры из которых должны быть видимыми. В задаче GHC #20529 это обсуждается подробнее.
reifyModule :: Module -> Q ModuleInfo Исходный код
reifyModule mod ищет информацию о модуле mod. Чтобы найти информацию о текущем модуле, вызовите эту функцию, передав ей значение, возвращённое thisModule.
reifyRoles :: Name -> Q [Role] Исходный код
reifyRoles nm возвращает список ролей, связанных с параметрами (видимыми и невидимыми) типового конструктора nm. Завершается с ошибкой, если nm не найден или не является типовым конструктором. Возвращаемый список никогда не должен содержать InferR.
Невидимый параметр типового конструктора часто является параметром kind. Например, если у нас есть
type Proxy :: forall k. k -> Type data Proxy a = MkProxy
и reifyRoles Proxy, мы получим [NominalR, PhantomR]. NominalR — это роль невидимого параметра k. Параметры kind всегда номинальные.
reifyType :: Name -> Q Type Исходный код
reifyType nm пытается найти тип или kind для nm. Например, reifyType 'not возвращает Bool -> Bool, а reifyType ''Bool возвращает Type. Это работает, даже если явная сигнатура отсутствует и тип или kind выведен.
report :: Bool -> String -> Q () Исходный код
Устарело: используйте reportError или reportWarning
Сообщает об ошибке (True) или предупреждении (False), но продолжает выполнение; чтобы остановить его, используйте fail.
reportError :: String -> Q () Исходный код
Сообщает пользователю об ошибке, но позволяет продолжить вычисление текущего сплайса. Чтобы прервать вычисление, используйте fail.
reportWarning :: String -> Q () Исходный код
Сообщает пользователю о предупреждении и продолжает выполнение.
runIO :: IO a -> Q a Исходный код
Функция runIO позволяет выполнять вычисление ввода-вывода в монаде Q. Будьте осторожны: порядок вызовов runIO в рамках одного вычисления Q гарантирован, но порядок выполнения сплайсов не гарантируется.
Примечание: по разным не вполне ясным причинам потоки stdout и stderr не всегда сбрасываются после завершения работы компилятора, поэтому сбрасывайте их самостоятельно.
sequenceQ :: Monad m => forall a. [m a] -> m [a] Исходный код
Эта функция используется только в Quote при устранении сахара в скобочных конструкциях. Пользователю она не нужна: можно использовать обычные операции return и (>>=).
runQ :: Quasi m => Q a -> m a Исходный код
«Запускает» монаду Q. Обычным пользователям Template Haskell эта функция не нужна, поскольку скобки сплайса $( ... ) обычно используются для запуска вычисления Q.
Эта функция в основном используется во внутренних механизмах GHC и для отладки сплайсов путём их запуска в IO.
Обратите внимание, что многие функции в Q, например reify и другие запросы компилятора, не поддерживаются при запуске Q в IO; такие операции просто завершаются с ошибкой во время выполнения. Фактически гарантированно успешно выполняются только операции newName, runIO, reportError и reportWarning.
showName :: Name -> String Исходный код
showName' :: NameIs -> Name -> String Исходный код
thenCmp :: Ordering -> Ordering -> Ordering Исходный код
Внутренняя вспомогательная функция.
tupleDataName :: Int -> Name Исходный код
Конструктор данных кортежа
tupleTypeName :: Int -> Name Исходный код
Конструктор типа кортежа
unTypeQ :: forall a m. Quote m => m (TExp a) -> m Exp Исходный код
Удаляет аннотацию типа и создаёт обычное выражение Template Haskell
Полиморфная по представлению с версии template-haskell-2.16.0.0.
unboxedSumDataName :: SumAlt -> SumArity -> Name Исходный код
Конструктор данных неупакованной суммы
unboxedSumTypeName :: SumArity -> Name Исходный код
Конструктор типа неупакованной суммы
unboxedTupleDataName :: Int -> Name Исходный код
Конструктор данных неупакованного кортежа
unboxedTupleTypeName :: Int -> Name Исходный код
Конструктор типа неупакованного кортежа
unsafeTExpCoerce :: forall a m. Quote m => m Exp -> m (TExp a) Исходный код
Аннотирует выражение Template Haskell типом
Это небезопасно, поскольку GHC не может проверить, действительно ли выражение имеет указанный вами тип.
Полиморфная по представлению с версии template-haskell-2.16.0.0.
data ForeignSrcLang Исходный код
Форматы внешнего кода, поддерживаемые GHC через TH
Экземпляры
| Eq ForeignSrcLang Исходный код | |||||
Определено в GHC.Internal.ForeignSrcLang Методы(==) :: ForeignSrcLang -> ForeignSrcLang -> Bool Исходный код (/=) :: ForeignSrcLang -> ForeignSrcLang -> Bool Исходный код | |||||
| Generic ForeignSrcLang Исходный код | |||||
Определено в GHC.Internal.ForeignSrcLang Связанные типы
Методыfrom :: ForeignSrcLang -> Rep ForeignSrcLang x Исходный код to :: Rep ForeignSrcLang x -> ForeignSrcLang Исходный код | |||||
| Show ForeignSrcLang Исходный код | |||||
Определено в GHC.Internal.ForeignSrcLang МетодыshowsPrec :: Int -> ForeignSrcLang -> ShowS Исходный код show :: ForeignSrcLang -> String Исходный код showList :: [ForeignSrcLang] -> ShowS Исходный код | |||||
| Lift ForeignSrcLang Исходный код | Начиная с: template-haskell-2.22.1.0 |
||||
Определено в GHC.Internal.TH.Lift Методыlift :: Quote m => ForeignSrcLang -> m Exp Исходный код liftTyped :: forall (m :: Type -> Type). Quote m => ForeignSrcLang -> Code m ForeignSrcLang Исходный код | |||||
| type Rep ForeignSrcLang Исходный код | |||||
Определено в GHC.Internal.ForeignSrcLang type Rep ForeignSrcLang = D1 ('MetaData "ForeignSrcLang" "GHC.Internal.ForeignSrcLang" "ghc-internal" 'False) ((C1 ('MetaCons "LangC" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "LangCxx" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LangObjc" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "LangObjcxx" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LangAsm" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "LangJs" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RawObject" 'PrefixI 'False) (U1 :: Type -> Type)))) | |||||
data Extension Исходный код
Расширения языка, известные GHC.
Обратите внимание, что для этого типа существует осиротевший Binary экземпляр, предоставляемый модулем GHC.LanguageExtensions, который входит в состав ghc-boot. Мы не можем предоставить его здесь, поскольку для этого потребовалось бы добавить транзитивные зависимости в пакет template-haskell, набор зависимостей которого должен быть минимальным.
Конструкторы
| Cpp | |
| OverlappingInstances | |
| UndecidableInstances | |
| IncoherentInstances | |
| UndecidableSuperClasses | |
| MonomorphismRestriction | |
| MonoLocalBinds | |
| DeepSubsumption | |
| RelaxedPolyRec | |
| ExtendedDefaultRules | |
| NamedDefaults | |
| ForeignFunctionInterface | |
| UnliftedFFITypes | |
| InterruptibleFFI | |
| CApiFFI | |
| GHCForeignImportPrim | |
| JavaScriptFFI | |
| ParallelArrays | |
| Arrows | |
| TemplateHaskell | |
| TemplateHaskellQuotes | |
| QualifiedDo | |
| QuasiQuotes | |
| ImplicitParams | |
| ImplicitPrelude | |
| ScopedTypeVariables | |
| AllowAmbiguousTypes | |
| UnboxedTuples | |
| UnboxedSums | |
| UnliftedNewtypes | |
| UnliftedDatatypes | |
| BangPatterns | |
| TypeFamilies | |
| TypeFamilyDependencies | |
| TypeInType | |
| OverloadedStrings | |
| OverloadedLists | |
| NumDecimals | |
| DisambiguateRecordFields | |
| RecordWildCards | |
| NamedFieldPuns | |
| ViewPatterns | |
| OrPatterns | |
| GADTs | |
| GADTSyntax | |
| NPlusKPatterns | |
| DoAndIfThenElse | |
| BlockArguments | |
| RebindableSyntax | |
| ConstraintKinds | |
| PolyKinds | |
| DataKinds | |
| TypeData | |
| InstanceSigs | |
| ApplicativeDo | |
| LinearTypes | |
| RequiredTypeArguments | |
| StandaloneDeriving | |
| DeriveDataTypeable | |
| AutoDeriveTypeable | |
| DeriveFunctor | |
| DeriveTraversable | |
| DeriveFoldable | |
| DeriveGeneric | |
| DefaultSignatures | |
| DeriveAnyClass | |
| DeriveLift | |
| DerivingStrategies | |
| DerivingVia | |
| TypeSynonymInstances | |
| FlexibleContexts | |
| FlexibleInstances | |
| ConstrainedClassMethods | |
| MultiParamTypeClasses | |
| NullaryTypeClasses | |
| FunctionalDependencies | |
| UnicodeSyntax | |
| ExistentialQuantification | |
| MagicHash | |
| EmptyDataDecls | |
| KindSignatures | |
| RoleAnnotations | |
| ParallelListComp | |
| TransformListComp | |
| MonadComprehensions | |
| GeneralizedNewtypeDeriving | |
| RecursiveDo | |
| PostfixOperators | |
| TupleSections | |
| PatternGuards | |
| LiberalTypeSynonyms | |
| RankNTypes | |
| ImpredicativeTypes | |
| TypeOperators | |
| ExplicitNamespaces | |
| PackageImports | |
| ExplicitForAll | |
| AlternativeLayoutRule | |
| AlternativeLayoutRuleTransitional | |
| DatatypeContexts | |
| NondecreasingIndentation | |
| RelaxedLayout | |
| TraditionalRecordSyntax | |
| LambdaCase | |
| MultiWayIf | |
| BinaryLiterals | |
| NegativeLiterals | |
| HexFloatLiterals | |
| DuplicateRecordFields | |
| OverloadedLabels | |
| EmptyCase | |
| PatternSynonyms | |
| PartialTypeSignatures | |
| NamedWildCards | |
| StaticPointers | |
| TypeApplications | |
| Strict | |
| StrictData | |
| EmptyDataDeriving | |
| NumericUnderscores | |
| QuantifiedConstraints | |
| StarIsType | |
| ImportQualifiedPost | |
| CUSKs | |
| StandaloneKindSignatures | |
| LexicalNegation | |
| FieldSelectors | |
| OverloadedRecordDot | |
| OverloadedRecordUpdate | |
| TypeAbstractions | |
| ExtendedLiterals | |
| ListTuplePuns | |
| MultilineStrings | |
| ExplicitLevelImports | |
| ImplicitStagePersistence |
Экземпляры
| Eq Extension Источник | |||||
| Ord Extension Источник | |||||
Определено в GHC.Internal.LanguageExtensions Методыcompare :: Extension -> Extension -> Ordering Источник (<) :: Extension -> Extension -> Bool Источник (<=) :: Extension -> Extension -> Bool Источник (>) :: Extension -> Extension -> Bool Источник (>=) :: Extension -> Extension -> Bool Источник | |||||
| Bounded Extension Источник | |||||
| Enum Extension Источник | |||||
Определено в GHC.Internal.LanguageExtensions Методыsucc :: Extension -> Extension Источник pred :: Extension -> Extension Источник toEnum :: Int -> Extension Источник fromEnum :: Extension -> Int Источник enumFrom :: Extension -> [Extension] Источник enumFromThen :: Extension -> Extension -> [Extension] Источник enumFromTo :: Extension -> Extension -> [Extension] Источник enumFromThenTo :: Extension -> Extension -> Extension -> [Extension] Источник | |||||
| Generic Extension Источник | |||||
Определено в GHC.Internal.LanguageExtensions Ассоциированные типы
| |||||
|
|
| |||
| Show Extension Source | |||
type Rep Extension = D1 ('MetaData "Extension" "GHC.Internal.LanguageExtensions" "ghc-internal" 'False) (((((((C1 ('MetaCons "Cpp" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OverlappingInstances" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "UndecidableInstances" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IncoherentInstances" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "UndecidableSuperClasses" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MonomorphismRestriction" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "MonoLocalBinds" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DeepSubsumption" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "RelaxedPolyRec" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ExtendedDefaultRules" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "NamedDefaults" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ForeignFunctionInterface" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "UnliftedFFITypes" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "InterruptibleFFI" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CApiFFI" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "GHCForeignImportPrim" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: ((((C1 ('MetaCons "JavaScriptFFI" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ParallelArrays" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Arrows" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TemplateHaskell" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "TemplateHaskellQuotes" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "QualifiedDo" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "QuasiQuotes" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ImplicitParams" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "ImplicitPrelude" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ScopedTypeVariables" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "AllowAmbiguousTypes" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "UnboxedTuples" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "UnboxedSums" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "UnliftedNewtypes" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "UnliftedDatatypes" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "BangPatterns" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TypeFamilies" 'PrefixI 'False) (U1 :: Type -> Type))))))) :+: (((((C1 ('MetaCons "TypeFamilyDependencies" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TypeInType" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "OverloadedStrings" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OverloadedLists" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "NumDecimals" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DisambiguateRecordFields" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "RecordWildCards" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NamedFieldPuns" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "ViewPatterns" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OrPatterns" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "GADTs" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "GADTSyntax" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "NPlusKPatterns" 'PrefixI 'False) (U1 :: Type -> |
Type) :+: C1 ('MetaCons "DoAndIfThenElse" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "BlockArguments" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "RebindableSyntax" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ConstraintKinds" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "PolyKinds" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DataKinds" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TypeData" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "InstanceSigs" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ApplicativeDo" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LinearTypes" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "RequiredTypeArguments" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "StandaloneDeriving" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "DeriveDataTypeable" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "AutoDeriveTypeable" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "DeriveFunctor" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DeriveTraversable" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "DeriveFoldable" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DeriveGeneric" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "DefaultSignatures" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "DeriveAnyClass" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DeriveLift" 'PrefixI 'False) (U1 :: Type -> Type)))))))) :+: ((((((C1 ('MetaCons "DerivingStrategies" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DerivingVia" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TypeSynonymInstances" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FlexibleContexts" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "FlexibleInstances" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ConstrainedClassMethods" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "MultiParamTypeClasses" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NullaryTypeClasses" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "FunctionalDependencies" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "UnicodeSyntax" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ExistentialQuantification" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MagicHash" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "EmptyDataDecls" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "KindSignatures" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "RoleAnnotations" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ParallelListComp" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TransformListComp" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "MonadComprehensions" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "GeneralizedNewtypeDeriving" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "RecursiveDo" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PostfixOperators" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "TupleSections" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PatternGuards" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "LiberalTypeSynonyms" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RankNTypes" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons |
"ImpredicativeTypes" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TypeOperators" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ExplicitNamespaces" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PackageImports" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ExplicitForAll" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "AlternativeLayoutRule" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "AlternativeLayoutRuleTransitional" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "DatatypeContexts" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NondecreasingIndentation" 'PrefixI 'False) (U1 :: Type -> Type))))))) :+: (((((C1 ('MetaCons "RelaxedLayout" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TraditionalRecordSyntax" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "LambdaCase" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MultiWayIf" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "BinaryLiterals" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NegativeLiterals" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "HexFloatLiterals" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DuplicateRecordFields" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "OverloadedLabels" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "EmptyCase" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PatternSynonyms" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PartialTypeSignatures" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "NamedWildCards" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "StaticPointers" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TypeApplications" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Strict" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "StrictData" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "EmptyDataDeriving" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NumericUnderscores" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "QuantifiedConstraints" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "StarIsType" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ImportQualifiedPost" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CUSKs" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "StandaloneKindSignatures" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LexicalNegation" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "FieldSelectors" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OverloadedRecordDot" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "OverloadedRecordUpdate" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TypeAbstractions" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ExtendedLiterals" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ListTuplePuns" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "MultilineStrings" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ExplicitLevelImports" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ImplicitStagePersistence" 'PrefixI 'False) (U1 :: Type -> Type))))))))) |
Цель аннотации для reifyAnnotations
Конструкторы
| AnnLookupModule Module | |
| AnnLookupName Name |
Экземпляры
| Eq AnnLookup Источник | |||||
| Ord AnnLookup Источник | |||||
Определено в GHC.Internal.TH.Syntax Методыcompare :: AnnLookup -> AnnLookup -> Ordering Источник (<) :: AnnLookup -> AnnLookup -> Bool Источник (<=) :: AnnLookup -> AnnLookup -> Bool Источник (>) :: AnnLookup -> AnnLookup -> Bool Источник (>=) :: AnnLookup -> AnnLookup -> Bool Источник | |||||
| Data AnnLookup Источник | |||||
Определено в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnLookup -> c AnnLookup Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnnLookup Источник toConstr :: AnnLookup -> Constr Источник dataTypeOf :: AnnLookup -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnnLookup) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnnLookup) Источник gmapT :: (forall b. Data b => b -> b) -> AnnLookup -> AnnLookup Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnLookup -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnLookup -> r Источник gmapQ :: (forall d. Data d => d -> u) -> AnnLookup -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnLookup -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnLookup -> m AnnLookup Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnLookup -> m AnnLookup Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnLookup -> m AnnLookup Источник | |||||
| Generic AnnLookup Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Show AnnLookup Источник | |||||
| Lift AnnLookup Источник | С версии: template-haskell-2.22.1.0 |
||||
| type Rep AnnLookup Источник | |||||
Определено в GHC.Internal.TH.Syntax type Rep AnnLookup = D1 ('MetaData "AnnLookup" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "AnnLookupModule" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Module)) :+: C1 ('MetaCons "AnnLookupName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))) | |||||
Цель прагмы ANN
Конструкторы
| ModuleAnnotation | {-# ANN {module} ... #-} |
| TypeAnnotation Name | {-# ANN type {name} ... #-} |
| ValueAnnotation Name | {-# ANN {name} ... #-} |
Экземпляры
| Eq AnnTarget Источник | |||||
| Ord AnnTarget Источник | |||||
Определено в GHC.Internal.TH.Syntax Методыcompare :: AnnTarget -> AnnTarget -> Ordering Источник (<) :: AnnTarget -> AnnTarget -> Bool Источник (<=) :: AnnTarget -> AnnTarget -> Bool Источник (>) :: AnnTarget -> AnnTarget -> Bool Источник (>=) :: AnnTarget -> AnnTarget -> Bool Источник | |||||
| Data AnnTarget Источник | |||||
Определено в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnTarget -> c AnnTarget Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnnTarget Источник toConstr :: AnnTarget -> Constr Источник dataTypeOf :: AnnTarget -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnnTarget) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnnTarget) Источник gmapT :: (forall b. Data b => b -> b) -> AnnTarget -> AnnTarget Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnTarget -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnTarget -> r Источник gmapQ :: (forall d. Data d => d -> u) -> AnnTarget -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnTarget -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnTarget -> m AnnTarget Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnTarget -> m AnnTarget Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnTarget -> m AnnTarget Источник | |||||
| Generic AnnTarget Источник | |||||
Определено в GHC.Internal.TH.Syntax Ассоциированные типы
| |||||
| Show AnnTarget Источник | |||||
| Lift AnnTarget Источник | Начиная с: template-haskell-2.22.1.0 |
||||
| type Rep AnnTarget Источник | |||||
Определено в GHC.Internal.TH.Syntax type Rep AnnTarget = D1 ('MetaData "AnnTarget" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "ModuleAnnotation" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TypeAnnotation" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: C1 ('MetaCons "ValueAnnotation" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)))) | |||||
В PrimTyConI — арность конструктора типа
Информация о строгости аргумента конструктора данных.
Конструкторы
| Bang SourceUnpackedness SourceStrictness | C { {-# UNPACK #-} !}a |
Экземпляры
| Ppr Bang Источник | |||||
| Eq Bang Источник | |||||
| Ord Bang Источник | |||||
Определён в GHC.Internal.TH.Syntax | |||||
| Data Bang Источник | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Bang -> c Bang Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Bang Источник toConstr :: Bang -> Constr Источник dataTypeOf :: Bang -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Bang) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Bang) Источник gmapT :: (forall b. Data b => b -> b) -> Bang -> Bang Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Bang -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Bang -> r Источник gmapQ :: (forall d. Data d => d -> u) -> Bang -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> Bang -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> Bang -> m Bang Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Bang -> m Bang Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Bang -> m Bang Источник | |||||
| Generic Bang Источник | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Show Bang Источник | |||||
| Lift Bang Источник | С версии: template-haskell-2.22.1.0 |
||||
| type Rep Bang Источник | |||||
Определён в GHC.Internal.TH.Syntax type Rep Bang = D1 ('MetaData "Bang" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "Bang" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceUnpackedness) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceStrictness))) | |||||
Видимость переменной типа. См. Выведенные и указанные переменные типа.
Экземпляры
| PprFlag BndrVis Источник | |
Определён в GHC.Boot.TH.Ppr МетодыpprTyVarBndr :: TyVarBndr BndrVis -> Doc Источник | |
| Eq BndrVis Источник | |
| Ord BndrVis Источник | |
Определён в GHC.Internal.TH.Syntax | |
| Data BndrVis Источник | |
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> BndrVis -> c BndrVis Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c BndrVis Источник toConstr :: BndrVis -> Constr Источник dataTypeOf :: BndrVis -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c BndrVis) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c BndrVis) Источник gmapT :: (forall b. Data b => b -> b) -> BndrVis -> BndrVis Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> BndrVis -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> BndrVis -> r Источник gmapQ :: (forall d. Data d => d -> u) -> BndrVis -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> BndrVis -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> BndrVis -> m BndrVis Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> BndrVis -> m BndrVis Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> BndrVis -> m BndrVis Источник | |
| Generic BndrVis Источник | |
Определён в GHC.Internal.TH.Syntax | |
| Show BndrVis Источник | |
| DefaultBndrFlag BndrVis Источник | |
Определён в Language.Haskell.TH.Lib Методы | |
| Lift BndrVis Источник | С версии: template-haskell-2.22.1.0 |
| type Rep BndrVis Источник | |
Выражение, потенциально имеющее защитные условия, например в определениях функций или альтернативах case.
Экземпляры
| Eq Body Источник | |||||
| Ord Body Источник | |||||
Определён в GHC.Internal.TH.Syntax | |||||
| Data Body Источник | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Body -> c Body Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Body Источник toConstr :: Body -> Constr Источник dataTypeOf :: Body -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Body) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Body) Источник gmapT :: (forall b. Data b => b -> b) -> Body -> Body Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Body -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Body -> r Источник gmapQ :: (forall d. Data d => d -> u) -> Body -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> Body -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> Body -> m Body Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Body -> m Body Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Body -> m Body Источник | |||||
| Generic Body Источник | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Show Body Источник | |||||
| Lift Body Источник | Начиная с: template-haskell-2.22.1.0 |
||||
| type Rep Body Источник | |||||
Определён в GHC.Internal.TH.Syntax type Rep Body = D1 ('MetaData "Body" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "GuardedB" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(Guard, Exp)])) :+: C1 ('MetaCons "NormalB" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))) | |||||
Необработанные байты, встроенные в двоичный файл.
Не используйте конструктор Bytes напрямую, так как в будущем он, вероятно, изменится. Вместо этого используйте вспомогательные функции, например mkBytes, из Language.Haskell.TH.Lib.
Конструкторы
| Bytes | |
Поля
| |
Экземпляры
| Eq Bytes Источник | |||||
| Ord Bytes Источник | |||||
Определено в GHC.Internal.TH.Syntax | |||||
| Data Bytes Источник | |||||
Определено в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Bytes -> c Bytes Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Bytes Источник toConstr :: Bytes -> Constr Источник dataTypeOf :: Bytes -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Bytes) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Bytes) Источник gmapT :: (forall b. Data b => b -> b) -> Bytes -> Bytes Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Bytes -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Bytes -> r Источник gmapQ :: (forall d. Data d => d -> u) -> Bytes -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> Bytes -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> Bytes -> m Bytes Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Bytes -> m Bytes Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Bytes -> m Bytes Источник | |||||
| Generic Bytes Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Show Bytes Источник | |||||
| Lift Bytes Источник | Начиная с: template-haskell-2.22.1.0 |
||||
| type Rep Bytes Источник | |||||
Определено в GHC.Internal.TH.Syntax type Rep Bytes = D1 ('MetaData "Bytes" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "Bytes" 'PrefixI 'True) (S1 ('MetaSel ('Just "bytesPtr") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ForeignPtr Word8)) :*: (S1 ('MetaSel ('Just "bytesOffset") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word) :*: S1 ('MetaSel ('Just "bytesSize") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word)))) | |||||
Идентификатор соглашения о вызовах, например в объявлении Foreign.
Конструкторы
| CCall | |
| StdCall | |
| CApi | |
| Prim | |
| JavaScript |
Экземпляры
| Eq Callconv Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методы(==) :: Callconv -> Callconv -> Bool Исходный код (/=) :: Callconv -> Callconv -> Bool Исходный код | |||||
| Ord Callconv Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методыcompare :: Callconv -> Callconv -> Ordering Исходный код (<) :: Callconv -> Callconv -> Bool Исходный код (<=) :: Callconv -> Callconv -> Bool Исходный код (>) :: Callconv -> Callconv -> Bool Исходный код (>=) :: Callconv -> Callconv -> Bool Исходный код max :: Callconv -> Callconv -> Callconv Исходный код min :: Callconv -> Callconv -> Callconv Исходный код | |||||
| Data Callconv Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Callconv -> c Callconv Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Callconv Исходный код toConstr :: Callconv -> Constr Исходный код dataTypeOf :: Callconv -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Callconv) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Callconv) Исходный код gmapT :: (forall b. Data b => b -> b) -> Callconv -> Callconv Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Callconv -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Callconv -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> Callconv -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> Callconv -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> Callconv -> m Callconv Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Callconv -> m Callconv Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Callconv -> m Callconv Исходный код | |||||
| Generic Callconv Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: Callconv -> Rep Callconv x Исходный код to :: Rep Callconv x -> Callconv Исходный код | |||||
| Show Callconv Исходный код | |||||
Определён в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> Callconv -> ShowS Исходный код show :: Callconv -> String Исходный код showList :: [Callconv] -> ShowS Исходный код | |||||
| Lift Callconv Исходный код | Начиная с: template-haskell-2.22.1.0 |
||||
Определён в GHC.Internal.TH.Lift | |||||
| type Rep Callconv Исходный код | |||||
Определён в GHC.Internal.TH.Syntax type Rep Callconv = D1 ('MetaData "Callconv" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) ((C1 ('MetaCons "CCall" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "StdCall" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CApi" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Prim" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JavaScript" 'PrefixI 'False) (U1 :: Type -> Type)))) | |||||
type CharPos Исходный код
type Cxt Исходный код
Аргументы
| = [Pred] | (Eq a, Ord b) |
Контекст, встречающийся в левой части => в типе.
data DecidedStrictness Исходный код
В отличие от SourceStrictness и SourceUnpackedness, DecidedStrictness обозначает аннотации строгости, которые компилятор выбирает для поля конструктора данных; они могут отличаться от указанных в исходном коде.
Обратите внимание, что строгим полям без распаковки присваивается DecidedLazy, если использование восклицательного знака было бы неуместным, например для поля конструктора newtype и полей с типом без подъёма.
Дополнительные сведения см. в reifyConStrictness.
Конструкторы
| DecidedLazy | Поле, для которого выведено отсутствие восклицательного знака. |
| DecidedStrict | Поле, для которого выведено наличие восклицательного знака. |
| DecidedUnpack | Поле, для которого выведена распаковка. |
Экземпляры
| Ppr DecidedStrictness Источник | |||||
Определён в GHC.Boot.TH.Ppr | |||||
| Eq DecidedStrictness Источник | |||||
Определён в GHC.Internal.TH.Syntax Методы(==) :: DecidedStrictness -> DecidedStrictness -> Bool Источник (/=) :: DecidedStrictness -> DecidedStrictness -> Bool Источник | |||||
| Ord DecidedStrictness Источник | |||||
Определён в GHC.Internal.TH.Syntax Методыcompare :: DecidedStrictness -> DecidedStrictness -> Ordering Источник (<) :: DecidedStrictness -> DecidedStrictness -> Bool Источник (<=) :: DecidedStrictness -> DecidedStrictness -> Bool Источник (>) :: DecidedStrictness -> DecidedStrictness -> Bool Источник (>=) :: DecidedStrictness -> DecidedStrictness -> Bool Источник max :: DecidedStrictness -> DecidedStrictness -> DecidedStrictness Источник min :: DecidedStrictness -> DecidedStrictness -> DecidedStrictness Источник | |||||
| Data DecidedStrictness Источник | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DecidedStrictness -> c DecidedStrictness Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DecidedStrictness Источник toConstr :: DecidedStrictness -> Constr Источник dataTypeOf :: DecidedStrictness -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DecidedStrictness) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DecidedStrictness) Источник gmapT :: (forall b. Data b => b -> b) -> DecidedStrictness -> DecidedStrictness Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DecidedStrictness -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DecidedStrictness -> r Источник gmapQ :: (forall d. Data d => d -> u) -> DecidedStrictness -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> DecidedStrictness -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> DecidedStrictness -> m DecidedStrictness Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DecidedStrictness -> m DecidedStrictness Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DecidedStrictness -> m DecidedStrictness Источник | |||||
| Generic DecidedStrictness Источник | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: DecidedStrictness -> Rep DecidedStrictness x Источник to :: Rep DecidedStrictness x -> DecidedStrictness Источник | |||||
| Show DecidedStrictness Источник | |||||
Определён в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> DecidedStrictness -> ShowS Источник show :: DecidedStrictness -> String Источник showList :: [DecidedStrictness] -> ShowS Источник | |||||
| Lift DecidedStrictness Источник | Начиная с: template-haskell-2.22.1.0 |
||||
Определён в GHC.Internal.TH.Lift Методыlift :: Quote m => DecidedStrictness -> m Exp Источник liftTyped :: forall (m :: Type -> Type). Quote m => DecidedStrictness -> Code m DecidedStrictness Источник | |||||
| type Rep DecidedStrictness Источник | |||||
Определён в GHC.Internal.TH.Syntax type Rep DecidedStrictness = D1 ('MetaData "DecidedStrictness" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "DecidedLazy" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "DecidedStrict" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DecidedUnpack" 'PrefixI 'False) (U1 :: Type -> Type))) | |||||
Место, к которому следует прикрепить документацию Haddock. Обратите внимание, что добавление документации к Name, определённому вне текущего модуля, приведёт к ошибке.
Экземпляры
| Eq DocLoc Исходный код | |||||
Определено в GHC.Internal.TH.Syntax | |||||
| Ord DocLoc Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Методыcompare :: DocLoc -> DocLoc -> Ordering Исходный код (<) :: DocLoc -> DocLoc -> Bool Исходный код (<=) :: DocLoc -> DocLoc -> Bool Исходный код (>) :: DocLoc -> DocLoc -> Bool Исходный код (>=) :: DocLoc -> DocLoc -> Bool Исходный код max :: DocLoc -> DocLoc -> DocLoc Исходный код min :: DocLoc -> DocLoc -> DocLoc Исходный код | |||||
| Data DocLoc Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DocLoc -> c DocLoc Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DocLoc Исходный код toConstr :: DocLoc -> Constr Исходный код dataTypeOf :: DocLoc -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DocLoc) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DocLoc) Исходный код gmapT :: (forall b. Data b => b -> b) -> DocLoc -> DocLoc Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DocLoc -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DocLoc -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> DocLoc -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> DocLoc -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> DocLoc -> m DocLoc Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DocLoc -> m DocLoc Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DocLoc -> m DocLoc Исходный код | |||||
| Generic DocLoc Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Ассоциированные типы
| |||||
| Show DocLoc Исходный код | |||||
Определено в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> DocLoc -> ShowS Исходный код show :: DocLoc -> String Исходный код showList :: [DocLoc] -> ShowS Исходный код | |||||
| Lift DocLoc Исходный код | Начиная с: template-haskell-2.22.1.0 |
||||
Определено в GHC.Internal.TH.Lift | |||||
| type Rep DocLoc Исходный код | |||||
Определено в GHC.Internal.TH.Syntax type Rep DocLoc = D1 ('MetaData "DocLoc" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) ((C1 ('MetaCons "ModuleDoc" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DeclDoc" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))) :+: (C1 ('MetaCons "ArgDoc" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :+: C1 ('MetaCons "InstDoc" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) |
data FamilyResultSig Исходный код
Сигнатура результата семейства типов
Экземпляры
| Ppr FamilyResultSig Источник | |||||
Определено в GHC.Boot.TH.Ppr | |||||
| Eq FamilyResultSig Источник | |||||
Определено в GHC.Internal.TH.Syntax Методы(==) :: FamilyResultSig -> FamilyResultSig -> Bool Источник (/=) :: FamilyResultSig -> FamilyResultSig -> Bool Источник | |||||
| Ord FamilyResultSig Источник | |||||
Определено в GHC.Internal.TH.Syntax Методыcompare :: FamilyResultSig -> FamilyResultSig -> Ordering Источник (<) :: FamilyResultSig -> FamilyResultSig -> Bool Источник (<=) :: FamilyResultSig -> FamilyResultSig -> Bool Источник (>) :: FamilyResultSig -> FamilyResultSig -> Bool Источник (>=) :: FamilyResultSig -> FamilyResultSig -> Bool Источник max :: FamilyResultSig -> FamilyResultSig -> FamilyResultSig Источник min :: FamilyResultSig -> FamilyResultSig -> FamilyResultSig Источник | |||||
| Data FamilyResultSig Источник | |||||
Определено в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FamilyResultSig -> c FamilyResultSig Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c FamilyResultSig Источник toConstr :: FamilyResultSig -> Constr Источник dataTypeOf :: FamilyResultSig -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c FamilyResultSig) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c FamilyResultSig) Источник gmapT :: (forall b. Data b => b -> b) -> FamilyResultSig -> FamilyResultSig Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FamilyResultSig -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FamilyResultSig -> r Источник gmapQ :: (forall d. Data d => d -> u) -> FamilyResultSig -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> FamilyResultSig -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> FamilyResultSig -> m FamilyResultSig Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FamilyResultSig -> m FamilyResultSig Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FamilyResultSig -> m FamilyResultSig Источник | |||||
| Generic FamilyResultSig Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: FamilyResultSig -> Rep FamilyResultSig x Источник to :: Rep FamilyResultSig x -> FamilyResultSig Источник | |||||
| Show FamilyResultSig Источник | |||||
Определено в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> FamilyResultSig -> ShowS Источник show :: FamilyResultSig -> String Источник showList :: [FamilyResultSig] -> ShowS Источник | |||||
| Lift FamilyResultSig Источник | Начиная с: template-haskell-2.22.1.0 |
||||
Определено в GHC.Internal.TH.Lift Методыlift :: Quote m => FamilyResultSig -> m Exp Источник liftTyped :: forall (m :: Type -> Type). Quote m => FamilyResultSig -> Code m FamilyResultSig Источник | |||||
| type Rep FamilyResultSig Источник | |||||
Определено в GHC.Internal.TH.Syntax type Rep FamilyResultSig = D1 ('MetaData "FamilyResultSig" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "NoSig" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "KindSig" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Kind)) :+: C1 ('MetaCons "TyVarSig" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TyVarBndr ()))))) | |||||
data Fixity Исходный код
Ассоциативность и приоритет, указанные в объявлении infix[lr] n.
Конструкторы
| Fixity Int FixityDirection |
Экземпляры
| Eq Fixity Исходный код | |||||
Определён в GHC.Internal.TH.Syntax | |||||
| Ord Fixity Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методыcompare :: Fixity -> Fixity -> Ordering Исходный код (<) :: Fixity -> Fixity -> Bool Исходный код (<=) :: Fixity -> Fixity -> Bool Исходный код (>) :: Fixity -> Fixity -> Bool Исходный код (>=) :: Fixity -> Fixity -> Bool Исходный код max :: Fixity -> Fixity -> Fixity Исходный код min :: Fixity -> Fixity -> Fixity Исходный код | |||||
| Data Fixity Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Fixity -> c Fixity Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Fixity Исходный код toConstr :: Fixity -> Constr Исходный код dataTypeOf :: Fixity -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Fixity) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Fixity) Исходный код gmapT :: (forall b. Data b => b -> b) -> Fixity -> Fixity Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Fixity -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Fixity -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> Fixity -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> Fixity -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> Fixity -> m Fixity Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Fixity -> m Fixity Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Fixity -> m Fixity Исходный код | |||||
| Generic Fixity Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Show Fixity Исходный код | |||||
Определён в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> Fixity -> ShowS Исходный код show :: Fixity -> String Исходный код showList :: [Fixity] -> ShowS Исходный код | |||||
| Lift Fixity Исходный код | Начиная с: template-haskell-2.22.1.0 |
||||
Определён в GHC.Internal.TH.Lift | |||||
| type Rep Fixity Исходный код | |||||
Определён в GHC.Internal.TH.Syntax type Rep Fixity = D1 ('MetaData "Fixity" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "Fixity" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FixityDirection))) | |||||
data FixityDirection Исходный код
Ассоциативность оператора, как в объявлении infix.
Экземпляры
| Eq FixityDirection Источник | |||||
Определено в GHC.Internal.TH.Syntax Методы(==) :: FixityDirection -> FixityDirection -> Bool Источник (/=) :: FixityDirection -> FixityDirection -> Bool Источник | |||||
| Ord FixityDirection Источник | |||||
Определено в GHC.Internal.TH.Syntax Методыcompare :: FixityDirection -> FixityDirection -> Ordering Источник (<) :: FixityDirection -> FixityDirection -> Bool Источник (<=) :: FixityDirection -> FixityDirection -> Bool Источник (>) :: FixityDirection -> FixityDirection -> Bool Источник (>=) :: FixityDirection -> FixityDirection -> Bool Источник max :: FixityDirection -> FixityDirection -> FixityDirection Источник min :: FixityDirection -> FixityDirection -> FixityDirection Источник | |||||
| Data FixityDirection Источник | |||||
Определено в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FixityDirection -> c FixityDirection Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c FixityDirection Источник toConstr :: FixityDirection -> Constr Источник dataTypeOf :: FixityDirection -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c FixityDirection) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c FixityDirection) Источник gmapT :: (forall b. Data b => b -> b) -> FixityDirection -> FixityDirection Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FixityDirection -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FixityDirection -> r Источник gmapQ :: (forall d. Data d => d -> u) -> FixityDirection -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> FixityDirection -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> FixityDirection -> m FixityDirection Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FixityDirection -> m FixityDirection Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FixityDirection -> m FixityDirection Источник | |||||
| Generic FixityDirection Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: FixityDirection -> Rep FixityDirection x Источник to :: Rep FixityDirection x -> FixityDirection Источник | |||||
| Show FixityDirection Источник | |||||
Определено в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> FixityDirection -> ShowS Источник show :: FixityDirection -> String Источник showList :: [FixityDirection] -> ShowS Источник | |||||
| Lift FixityDirection Источник | Начиная с: template-haskell-2.22.1.0 |
||||
Определено в GHC.Internal.TH.Lift Методыlift :: Quote m => FixityDirection -> m Exp Источник liftTyped :: forall (m :: Type -> Type). Quote m => FixityDirection -> Code m FixityDirection Источник | |||||
| type Rep FixityDirection Источник | |||||
Определено в GHC.Internal.TH.Syntax type Rep FixityDirection = D1 ('MetaData "FixityDirection" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "InfixL" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "InfixR" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "InfixN" 'PrefixI 'False) (U1 :: Type -> Type))) | |||||
Объявление foreign.
Экземпляры
| Ppr Foreign Источник | |||||
| Eq Foreign Источник | |||||
| Ord Foreign Источник | |||||
Определено в GHC.Internal.TH.Syntax | |||||
| Data Foreign Источник | |||||
Определено в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Foreign -> c Foreign Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Foreign Источник toConstr :: Foreign -> Constr Источник dataTypeOf :: Foreign -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Foreign) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Foreign) Источник gmapT :: (forall b. Data b => b -> b) -> Foreign -> Foreign Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Foreign -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Foreign -> r Источник gmapQ :: (forall d. Data d => d -> u) -> Foreign -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> Foreign -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> Foreign -> m Foreign Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Foreign -> m Foreign Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Foreign -> m Foreign Источник | |||||
| Generic Foreign Источник | |||||
Определено в GHC.Internal.TH.Syntax Ассоциированные типы
| |||||
| Show Foreign Источник | |||||
| Lift Foreign Источник | Since: template-haskell-2.22.1.0 |
||||
| type Rep Foreign Источник | |
Определено в GHC.Internal.TH.Syntax type Rep Foreign = D1 ('MetaData "Foreign" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "ImportF" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Callconv) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Safety)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) :+: C1 ('MetaCons "ExportF" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Callconv) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) | |
Одно ограничение.
Экземпляры
| Eq Guard Источник | |||||
| Ord Guard Источник | |||||
Определён в GHC.Internal.TH.Syntax | |||||
| Data Guard Источник | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Guard -> c Guard Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Guard Источник toConstr :: Guard -> Constr Источник dataTypeOf :: Guard -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Guard) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Guard) Источник gmapT :: (forall b. Data b => b -> b) -> Guard -> Guard Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Guard -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Guard -> r Источник gmapQ :: (forall d. Data d => d -> u) -> Guard -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> Guard -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> Guard -> m Guard Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Guard -> m Guard Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Guard -> m Guard Источник | |||||
| Generic Guard Источник | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Show Guard Источник | |||||
| Lift Guard Источник | С версии: template-haskell-2.22.1.0 |
||||
| type Rep Guard Источник | |||||
Определён в GHC.Internal.TH.Syntax type Rep Guard = D1 ('MetaData "Guard" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "NormalG" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons "PatG" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Stmt]))) | |||||
Конструкторы
| ClassI Dec [InstanceDec] | Класс со списком его видимых экземпляров |
| ClassOpI Name Type ParentName | Метод класса |
| TyConI Dec | «Обычный» конструктор типа. «Более сложные» конструкторы типов возвращаются с помощью |
| FamilyI Dec [InstanceDec] | Семейство типов или данных со списком его видимых экземпляров. Замкнутое семейство типов возвращается с 0 экземплярами. |
| PrimTyConI Name Arity Unlifted | «Примитивный» конструктор типа, который нельзя выразить с помощью |
| DataConI Name Type ParentName | Конструктор данных |
| PatSynI Name PatSynType | Синоним шаблона |
| VarI Name Type (Maybe Dec) |
Переменная-«значение» (в отличие от переменной типа; см. Поле В настоящее время это значение всегда равно |
| TyVarI Name Type |
Переменная типа. Поле |
Экземпляры
| Ppr Info Исходный код | |
Определён в GHC.Boot.TH.Ppr | |
| Eq Info Исходный код | |
Определён в GHC.Internal.TH.Syntax | |
| Ord Info Исходный код | |
Определён в GHC.Internal.TH.Syntax Методыcompare :: Info -> Info -> Ordering Исходный код (<) :: Info -> Info -> Bool Исходный код (<=) :: Info -> Info -> Bool Исходный код (>) :: Info -> Info -> Bool Исходный код (>=) :: Info -> Info -> Bool Исходный код max :: Info -> Info -> Info Исходный код min :: Info -> Info -> Info Исходный код | |
| Data Info Исходный код | |
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Info -> c Info Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Info Исходный код toConstr :: Info -> Constr Исходный код dataTypeOf :: Info -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Info) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Info) Исходный код gmapT :: (forall b. Data b => b -> b) -> Info -> Info Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Info -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Info -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> Info -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> Info -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> Info -> m Info Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Info -> m Info Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Info -> m Info Исходный код | |
| Generic Info Исходный код | |
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Show Info Исходный код | |||||
Определено в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> Info -> ShowS Исходный код show :: Info -> String Исходный код showList :: [Info] -> ShowS Исходный код | |||||
| Lift Info Исходный код | Начиная с: template-haskell-2.22.1.0 |
||||
Определено в GHC.Internal.TH.Lift | |||||
| type Rep Info Исходный код | |||||
Определён в GHC.Internal.TH.Syntax type Rep Info = D1 ('MetaData "Info" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (((C1 ('MetaCons "ClassI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Dec) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [InstanceDec])) :+: C1 ('MetaCons "ClassOpI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ParentName)))) :+: (C1 ('MetaCons "TyConI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Dec)) :+: C1 ('MetaCons "FamilyI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Dec) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [InstanceDec])))) :+: ((C1 ('MetaCons "PrimTyConI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Arity) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Unlifted))) :+: C1 ('MetaCons "DataConI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ParentName)))) :+: (C1 ('MetaCons "PatSynI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PatSynType)) :+: (C1 ('MetaCons "VarI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Maybe Dec)))) :+: C1 ('MetaCons "TyVarI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))))) |
Прагма встраивания.
Экземпляры
| Ppr Inline Исходный код | |||||
Определён в GHC.Boot.TH.Ppr | |||||
| Eq Inline Исходный код | |||||
Определён в GHC.Internal.TH.Syntax | |||||
| Ord Inline Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методыcompare :: Inline -> Inline -> Ordering Исходный код (<) :: Inline -> Inline -> Bool Исходный код (<=) :: Inline -> Inline -> Bool Исходный код (>) :: Inline -> Inline -> Bool Исходный код (>=) :: Inline -> Inline -> Bool Исходный код max :: Inline -> Inline -> Inline Исходный код min :: Inline -> Inline -> Inline Исходный код | |||||
| Data Inline Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Inline -> c Inline Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Inline Исходный код toConstr :: Inline -> Constr Исходный код dataTypeOf :: Inline -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Inline) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Inline) Исходный код gmapT :: (forall b. Data b => b -> b) -> Inline -> Inline Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Inline -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Inline -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> Inline -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> Inline -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> Inline -> m Inline Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Inline -> m Inline Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Inline -> m Inline Исходный код | |||||
| Generic Inline Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Show Inline Исходный код | |||||
Определён в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> Inline -> ShowS Исходный код show :: Inline -> String Исходный код showList :: [Inline] -> ShowS Исходный код | |||||
| Lift Inline Исходный код | Начиная с: template-haskell-2.22.1.0 |
||||
Определён в GHC.Internal.TH.Lift | |||||
| type Rep Inline Исходный код | |||||
Определён в GHC.Internal.TH.Syntax | |||||
type InstanceDec = Dec Исходный код
InstanceDec описывает один экземпляр класса или функции типа. Это просто Dec, но гарантированно один из следующих вариантов:
-
InstanceD(с пустым[Dec]) -
DataInstDилиNewtypeInstD(с пустым производным[Name]) TySynInstD
data Lit Исходный код
Литерал Haskell. Обратите внимание, что числовые типы представлены либо через Integer, либо через Rational, независимо от представляемого ими типа. Дополнительная точность отражает текстовое представление в исходном коде.
Конструкторы
| CharL Char | 'c' |
| StringL String | "string" |
| IntegerL Integer |
|
| RationalL Rational |
|
| IntPrimL Integer | 123# |
| WordPrimL Integer | 123## |
| FloatPrimL Rational | 1.23# |
| DoublePrimL Rational | 1.23## |
| StringPrimL [Word8] |
|
| BytesPrimL Bytes | Необработанные байты, тип |
| CharPrimL Char | 'c'# |
Экземпляры
| Ppr Lit Исходный код | |
Определено в GHC.Boot.TH.Ppr | |
| Eq Lit Исходный код | |
Определено в GHC.Internal.TH.Syntax | |
| Ord Lit Исходный код | |
Определено в GHC.Internal.TH.Syntax Методыcompare :: Lit -> Lit -> Ordering Исходный код (<) :: Lit -> Lit -> Bool Исходный код (<=) :: Lit -> Lit -> Bool Исходный код (>) :: Lit -> Lit -> Bool Исходный код (>=) :: Lit -> Lit -> Bool Исходный код max :: Lit -> Lit -> Lit Исходный код min :: Lit -> Lit -> Lit Исходный код | |
| Data Lit Исходный код | |
Определено в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Lit -> c Lit Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Lit Исходный код toConstr :: Lit -> Constr Исходный код dataTypeOf :: Lit -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Lit) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Lit) Исходный код gmapT :: (forall b. Data b => b -> b) -> Lit -> Lit Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Lit -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Lit -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> Lit -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> Lit -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> Lit -> m Lit Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Lit -> m Lit Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Lit -> m Lit Исходный код | |
| Generic Lit Исходный код | |
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Show Lit Источник | |||||
| Lift Lit Источник | С версии: template-haskell-2.22.1.0 |
||||
| type Rep Lit Источник | |||||
Определено в GHC.Internal.TH.Syntax type Rep Lit = D1 ('MetaData "Lit" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (((C1 ('MetaCons "CharL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Char)) :+: C1 ('MetaCons "StringL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))) :+: (C1 ('MetaCons "IntegerL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)) :+: (C1 ('MetaCons "RationalL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rational)) :+: C1 ('MetaCons "IntPrimL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer))))) :+: ((C1 ('MetaCons "WordPrimL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)) :+: (C1 ('MetaCons "FloatPrimL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rational)) :+: C1 ('MetaCons "DoublePrimL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rational)))) :+: (C1 ('MetaCons "StringPrimL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Word8])) :+: (C1 ('MetaCons "BytesPrimL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bytes)) :+: C1 ('MetaCons "CharPrimL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Char)))))) |
Местоположение в исходном файле.
Конструкторы
| Loc | |
Поля
| |
Экземпляры
| Ppr Loc Источник | |||||
| Eq Loc Источник | |||||
| Ord Loc Источник | |||||
| Data Loc Источник | |||||
Определено в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Loc -> c Loc Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Loc Источник toConstr :: Loc -> Constr Источник dataTypeOf :: Loc -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Loc) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Loc) Источник gmapT :: (forall b. Data b => b -> b) -> Loc -> Loc Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Loc -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Loc -> r Источник gmapQ :: (forall d. Data d => d -> u) -> Loc -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> Loc -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> Loc -> m Loc Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Loc -> m Loc Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Loc -> m Loc Источник | |||||
| Generic Loc Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Show Loc Источник | |||||
| Lift Loc Источник | Начиная с: template-haskell-2.22.1.0 |
||||
| type Rep Loc Источник | |||||
Определено в GHC.Internal.TH.Syntax type Rep Loc = D1 ('MetaData "Loc" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "Loc" 'PrefixI 'True) ((S1 ('MetaSel ('Just "loc_filename") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "loc_package") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :*: (S1 ('MetaSel ('Just "loc_module") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Just "loc_start") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CharPos) :*: S1 ('MetaSel ('Just "loc_end") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CharPos))))) |
data Module Исходный код
Получено из reifyModule и thisModule.
Экземпляры
| Ppr Module Источник | |||||
| Eq Module Источник | |||||
| Ord Module Источник | |||||
| Data Module Источник | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Module -> c Module Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Module Источник toConstr :: Module -> Constr Источник dataTypeOf :: Module -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Module) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Module) Источник gmapT :: (forall b. Data b => b -> b) -> Module -> Module Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Module -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Module -> r Источник gmapQ :: (forall d. Data d => d -> u) -> Module -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> Module -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> Module -> m Module Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Module -> m Module Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Module -> m Module Источник | |||||
| Generic Module Источник | |||||
Определён в GHC.Internal.TH.Syntax Ассоциированные типы
| |||||
| Show Module Источник | |||||
| Lift Module Источник | Начиная с: template-haskell-2.22.1.0 |
||||
| type Rep Module Источник | |||||
Определён в GHC.Internal.TH.Syntax type Rep Module = D1 ('MetaData "Module" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "Module" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PkgName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModName))) | |||||
data ModuleInfo Источник
Получено из reifyModule в монаде Q.
Конструкторы
| ModuleInfo [Module] | Содержит список импортов модуля. |
Экземпляры
| Ppr ModuleInfo Источник | |||||
Определён в GHC.Boot.TH.Ppr | |||||
| Eq ModuleInfo Источник | |||||
Определён в GHC.Internal.TH.Syntax Методы(==) :: ModuleInfo -> ModuleInfo -> Bool Источник (/=) :: ModuleInfo -> ModuleInfo -> Bool Источник | |||||
| Ord ModuleInfo Источник | |||||
Определён в GHC.Internal.TH.Syntax Методыcompare :: ModuleInfo -> ModuleInfo -> Ordering Источник (<) :: ModuleInfo -> ModuleInfo -> Bool Источник (<=) :: ModuleInfo -> ModuleInfo -> Bool Источник (>) :: ModuleInfo -> ModuleInfo -> Bool Источник (>=) :: ModuleInfo -> ModuleInfo -> Bool Источник max :: ModuleInfo -> ModuleInfo -> ModuleInfo Источник min :: ModuleInfo -> ModuleInfo -> ModuleInfo Источник | |||||
| Data ModuleInfo Источник | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ModuleInfo -> c ModuleInfo Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ModuleInfo Источник toConstr :: ModuleInfo -> Constr Источник dataTypeOf :: ModuleInfo -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ModuleInfo) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ModuleInfo) Источник gmapT :: (forall b. Data b => b -> b) -> ModuleInfo -> ModuleInfo Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ModuleInfo -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ModuleInfo -> r Источник gmapQ :: (forall d. Data d => d -> u) -> ModuleInfo -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> ModuleInfo -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> ModuleInfo -> m ModuleInfo Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ModuleInfo -> m ModuleInfo Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ModuleInfo -> m ModuleInfo Источник | |||||
| Generic ModuleInfo Источник | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: ModuleInfo -> Rep ModuleInfo x Источник to :: Rep ModuleInfo x -> ModuleInfo Источник | |||||
| Show ModuleInfo Источник | |||||
Определён в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> ModuleInfo -> ShowS Источник show :: ModuleInfo -> String Источник showList :: [ModuleInfo] -> ShowS Источник | |||||
| type Rep ModuleInfo Источник | |||||
Определён в GHC.Internal.TH.Syntax type Rep ModuleInfo = D1 ('MetaData "ModuleInfo" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "ModuleInfo" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Module]))) | |||||
data NameFlavour Источник
Конструкторы
| NameS | Неквалифицированное имя; динамически связывается |
| NameQ ModName | Квалифицированное имя; динамически связывается |
| NameU !Uniq | Уникальное локальное имя |
| NameL !Uniq | Локальное имя, связанное вне AST TH |
| NameG NameSpace PkgName ModName | Глобальное имя, связанное вне AST TH: исходное имя (только вхождения, не связыватели). Также требуется пространство имён, чтобы точно определить, что именно мы именуем |
Экземпляры
| Eq NameFlavour Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методы(==) :: NameFlavour -> NameFlavour -> Bool Исходный код (/=) :: NameFlavour -> NameFlavour -> Bool Исходный код | |||||
| Ord NameFlavour Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методыcompare :: NameFlavour -> NameFlavour -> Ordering Исходный код (<) :: NameFlavour -> NameFlavour -> Bool Исходный код (<=) :: NameFlavour -> NameFlavour -> Bool Исходный код (>) :: NameFlavour -> NameFlavour -> Bool Исходный код (>=) :: NameFlavour -> NameFlavour -> Bool Исходный код max :: NameFlavour -> NameFlavour -> NameFlavour Исходный код min :: NameFlavour -> NameFlavour -> NameFlavour Исходный код | |||||
| Data NameFlavour Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NameFlavour -> c NameFlavour Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c NameFlavour Исходный код toConstr :: NameFlavour -> Constr Исходный код dataTypeOf :: NameFlavour -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c NameFlavour) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NameFlavour) Исходный код gmapT :: (forall b. Data b => b -> b) -> NameFlavour -> NameFlavour Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NameFlavour -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NameFlavour -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> NameFlavour -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> NameFlavour -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> NameFlavour -> m NameFlavour Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NameFlavour -> m NameFlavour Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NameFlavour -> m NameFlavour Исходный код | |||||
| Generic NameFlavour Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: NameFlavour -> Rep NameFlavour x Исходный код to :: Rep NameFlavour x -> NameFlavour Исходный код | |||||
| Show NameFlavour Исходный код | |||||
Определён в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> NameFlavour -> ShowS Исходный код show :: NameFlavour -> String Исходный код showList :: [NameFlavour] -> ShowS Исходный код | |||||
| Lift NameFlavour Исходный код | Начиная с: template-haskell-2.22.1.0 |
||||
Определён в GHC.Internal.TH.Lift Методыlift :: Quote m => NameFlavour -> m Exp Исходный код liftTyped :: forall (m :: Type -> Type). Quote m => NameFlavour -> Code m NameFlavour Исходный код | |||||
| type Rep NameFlavour Исходный код | |||||
Определено в GHC.Internal.TH.Syntax type Rep NameFlavour = D1 ('MetaData "NameFlavour" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) ((C1 ('MetaCons "NameS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NameQ" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModName))) :+: (C1 ('MetaCons "NameU" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Uniq)) :+: (C1 ('MetaCons "NameL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Uniq)) :+: C1 ('MetaCons "NameG" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NameSpace) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PkgName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModName)))))) |
Экземпляры
Экземпляры
| Eq NameSpace Источник | |||||
| Ord NameSpace Источник | |||||
Определён в GHC.Internal.TH.Syntax Методыcompare :: NameSpace -> NameSpace -> Ordering Источник (<) :: NameSpace -> NameSpace -> Bool Источник (<=) :: NameSpace -> NameSpace -> Bool Источник (>) :: NameSpace -> NameSpace -> Bool Источник (>=) :: NameSpace -> NameSpace -> Bool Источник | |||||
| Data NameSpace Источник | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NameSpace -> c NameSpace Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c NameSpace Источник toConstr :: NameSpace -> Constr Источник dataTypeOf :: NameSpace -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c NameSpace) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NameSpace) Источник gmapT :: (forall b. Data b => b -> b) -> NameSpace -> NameSpace Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NameSpace -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NameSpace -> r Источник gmapQ :: (forall d. Data d => d -> u) -> NameSpace -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> NameSpace -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> NameSpace -> m NameSpace Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NameSpace -> m NameSpace Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NameSpace -> m NameSpace Источник | |||||
| Generic NameSpace Источник | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Show NameSpace Источник | |||||
| Lift NameSpace Источник | Начиная с: template-haskell-2.22.1.0 |
||||
| type Rep NameSpace Источник | |||||
Определён в GHC.Internal.TH.Syntax type Rep NameSpace = D1 ('MetaData "NameSpace" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) ((C1 ('MetaCons "VarName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DataName" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TcClsName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FldName" 'PrefixI 'True) (S1 ('MetaSel ('Just "fldParent") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 String)))) | |||||
data NamespaceSpecifier Источник
Способ указать пространство имён, в котором следует искать источник имени, когда GHC требуется его найти
Конструкторы
| NoNamespaceSpecifier | Имя может быть любым; если есть два имени в разных пространствах имён, следует рассматривать оба |
| TypeNamespaceSpecifier | Имя должно обозначать сущность уровня типов, например тип данных, псевдоним типа, семейство типов, класс типов или переменную типа |
| DataNamespaceSpecifier | Имя должно обозначать сущность уровня терминов, например функцию, конструктор данных или синоним шаблона |
Экземпляры
| Eq NamespaceSpecifier Источник | |||||
Определён в GHC.Internal.TH.Syntax Методы(==) :: NamespaceSpecifier -> NamespaceSpecifier -> Bool Источник (/=) :: NamespaceSpecifier -> NamespaceSpecifier -> Bool Источник | |||||
| Ord NamespaceSpecifier Источник | |||||
Определён в GHC.Internal.TH.Syntax Методыcompare :: NamespaceSpecifier -> NamespaceSpecifier -> Ordering Источник (<) :: NamespaceSpecifier -> NamespaceSpecifier -> Bool Источник (<=) :: NamespaceSpecifier -> NamespaceSpecifier -> Bool Источник (>) :: NamespaceSpecifier -> NamespaceSpecifier -> Bool Источник (>=) :: NamespaceSpecifier -> NamespaceSpecifier -> Bool Источник max :: NamespaceSpecifier -> NamespaceSpecifier -> NamespaceSpecifier Источник min :: NamespaceSpecifier -> NamespaceSpecifier -> NamespaceSpecifier Источник | |||||
| Data NamespaceSpecifier Источник | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NamespaceSpecifier -> c NamespaceSpecifier Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c NamespaceSpecifier Источник toConstr :: NamespaceSpecifier -> Constr Источник dataTypeOf :: NamespaceSpecifier -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c NamespaceSpecifier) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NamespaceSpecifier) Источник gmapT :: (forall b. Data b => b -> b) -> NamespaceSpecifier -> NamespaceSpecifier Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NamespaceSpecifier -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NamespaceSpecifier -> r Источник gmapQ :: (forall d. Data d => d -> u) -> NamespaceSpecifier -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> NamespaceSpecifier -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> NamespaceSpecifier -> m NamespaceSpecifier Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NamespaceSpecifier -> m NamespaceSpecifier Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NamespaceSpecifier -> m NamespaceSpecifier Источник | |||||
| Generic NamespaceSpecifier Источник | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: NamespaceSpecifier -> Rep NamespaceSpecifier x Источник to :: Rep NamespaceSpecifier x -> NamespaceSpecifier Источник | |||||
| Show NamespaceSpecifier Источник | |||||
Определён в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> NamespaceSpecifier -> ShowS Источник show :: NamespaceSpecifier -> String Источник showList :: [NamespaceSpecifier] -> ShowS Источник | |||||
| Lift NamespaceSpecifier Источник | Начиная с: template-haskell-2.22.1.0 |
||||
Определён в GHC.Internal.TH.Lift Методыlift :: Quote m => NamespaceSpecifier -> m Exp Источник liftTyped :: forall (m :: Type -> Type). Quote m => NamespaceSpecifier -> Code m NamespaceSpecifier Источник | |||||
| type Rep NamespaceSpecifier Источник | |||||
Определён в GHC.Internal.TH.Syntax type Rep NamespaceSpecifier = D1 ('MetaData "NamespaceSpecifier" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "NoNamespaceSpecifier" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TypeNamespaceSpecifier" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DataNamespaceSpecifier" 'PrefixI 'False) (U1 :: Type -> Type))) | |||||
«Имя вхождения».
Экземпляры
| Eq OccName Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методы(==) :: OccName -> OccName -> Bool Исходный код (/=) :: OccName -> OccName -> Bool Исходный код | |||||
| Ord OccName Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методыcompare :: OccName -> OccName -> Ordering Исходный код (<) :: OccName -> OccName -> Bool Исходный код (<=) :: OccName -> OccName -> Bool Исходный код (>) :: OccName -> OccName -> Bool Исходный код (>=) :: OccName -> OccName -> Bool Исходный код max :: OccName -> OccName -> OccName Исходный код min :: OccName -> OccName -> OccName Исходный код | |||||
| Data OccName Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> OccName -> c OccName Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c OccName Исходный код toConstr :: OccName -> Constr Исходный код dataTypeOf :: OccName -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c OccName) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c OccName) Исходный код gmapT :: (forall b. Data b => b -> b) -> OccName -> OccName Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> OccName -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> OccName -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> OccName -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> OccName -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> OccName -> m OccName Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> OccName -> m OccName Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> OccName -> m OccName Исходный код | |||||
| Generic OccName Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Ассоциированные типы
| |||||
| Show OccName Исходный код | |||||
Определён в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> OccName -> ShowS Исходный код show :: OccName -> String Исходный код showList :: [OccName] -> ShowS Исходный код | |||||
| Lift OccName Исходный код | Начиная с: template-haskell-2.22.1.0 |
||||
Определён в GHC.Internal.TH.Lift | |||||
| type Rep OccName Исходный код | |||||
Определён в GHC.Internal.TH.Syntax | |||||
type ParentName = Name Исходный код
В ClassOpI и DataConI — имя родительского класса или типа
data PatSynArgs Исходный код
Тип аргументов синонима шаблона.
Конструкторы
| PrefixPatSyn [Name] | pattern P {x y z} = p |
| InfixPatSyn Name Name | pattern {x P y} = p |
| RecordPatSyn [Name] | pattern P { {x,y,z} } = p |
Экземпляры
| Ppr PatSynArgs Исходный код | |||||
Определено в GHC.Boot.TH.Ppr | |||||
| Eq PatSynArgs Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Методы(==) :: PatSynArgs -> PatSynArgs -> Bool Исходный код (/=) :: PatSynArgs -> PatSynArgs -> Bool Исходный код | |||||
| Ord PatSynArgs Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Методыcompare :: PatSynArgs -> PatSynArgs -> Ordering Исходный код (<) :: PatSynArgs -> PatSynArgs -> Bool Исходный код (<=) :: PatSynArgs -> PatSynArgs -> Bool Исходный код (>) :: PatSynArgs -> PatSynArgs -> Bool Исходный код (>=) :: PatSynArgs -> PatSynArgs -> Bool Исходный код max :: PatSynArgs -> PatSynArgs -> PatSynArgs Исходный код min :: PatSynArgs -> PatSynArgs -> PatSynArgs Исходный код | |||||
| Data PatSynArgs Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PatSynArgs -> c PatSynArgs Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PatSynArgs Исходный код toConstr :: PatSynArgs -> Constr Исходный код dataTypeOf :: PatSynArgs -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c PatSynArgs) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PatSynArgs) Исходный код gmapT :: (forall b. Data b => b -> b) -> PatSynArgs -> PatSynArgs Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PatSynArgs -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PatSynArgs -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> PatSynArgs -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> PatSynArgs -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> PatSynArgs -> m PatSynArgs Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PatSynArgs -> m PatSynArgs Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PatSynArgs -> m PatSynArgs Исходный код | |||||
| Generic PatSynArgs Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: PatSynArgs -> Rep PatSynArgs x Исходный код to :: Rep PatSynArgs x -> PatSynArgs Исходный код | |||||
| Show PatSynArgs Исходный код | |||||
Определено в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> PatSynArgs -> ShowS Исходный код show :: PatSynArgs -> String Исходный код showList :: [PatSynArgs] -> ShowS Исходный код | |||||
| Lift PatSynArgs Исходный код | Начиная с: template-haskell-2.22.1.0 |
||||
Определено в GHC.Internal.TH.Lift Методыlift :: Quote m => PatSynArgs -> m Exp Исходный код liftTyped :: forall (m :: Type -> Type). Quote m => PatSynArgs -> Code m PatSynArgs Исходный код | |||||
| type Rep PatSynArgs Исходный код | |||||
Определено в GHC.Internal.TH.Syntax type Rep PatSynArgs = D1 ('MetaData "PatSynArgs" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "PrefixPatSyn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name])) :+: (C1 ('MetaCons "InfixPatSyn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: C1 ('MetaCons "RecordPatSyn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name])))) |
data PatSynDir Исходный код
Направленность синонима шаблона.
Экземпляры
| Ppr PatSynDir Исходный код | |||||
Определён в GHC.Boot.TH.Ppr | |||||
| Eq PatSynDir Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методы(==) :: PatSynDir -> PatSynDir -> Bool Исходный код (/=) :: PatSynDir -> PatSynDir -> Bool Исходный код | |||||
| Ord PatSynDir Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методыcompare :: PatSynDir -> PatSynDir -> Ordering Исходный код (<) :: PatSynDir -> PatSynDir -> Bool Исходный код (<=) :: PatSynDir -> PatSynDir -> Bool Исходный код (>) :: PatSynDir -> PatSynDir -> Bool Исходный код (>=) :: PatSynDir -> PatSynDir -> Bool Исходный код max :: PatSynDir -> PatSynDir -> PatSynDir Исходный код min :: PatSynDir -> PatSynDir -> PatSynDir Исходный код | |||||
| Data PatSynDir Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PatSynDir -> c PatSynDir Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PatSynDir Исходный код toConstr :: PatSynDir -> Constr Исходный код dataTypeOf :: PatSynDir -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c PatSynDir) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PatSynDir) Исходный код gmapT :: (forall b. Data b => b -> b) -> PatSynDir -> PatSynDir Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PatSynDir -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PatSynDir -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> PatSynDir -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> PatSynDir -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> PatSynDir -> m PatSynDir Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PatSynDir -> m PatSynDir Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PatSynDir -> m PatSynDir Исходный код | |||||
| Generic PatSynDir Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: PatSynDir -> Rep PatSynDir x Исходный код to :: Rep PatSynDir x -> PatSynDir Исходный код | |||||
| Show PatSynDir Исходный код | |||||
Определён в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> PatSynDir -> ShowS Исходный код show :: PatSynDir -> String Исходный код showList :: [PatSynDir] -> ShowS Исходный код | |||||
| Lift PatSynDir Исходный код | Начиная с: template-haskell-2.22.1.0 |
||||
Определён в GHC.Internal.TH.Lift | |||||
| type Rep PatSynDir Исходный код | |||||
Определён в GHC.Internal.TH.Syntax type Rep PatSynDir = D1 ('MetaData "PatSynDir" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "Unidir" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ImplBidir" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ExplBidir" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Clause])))) | |||||
type PatSynType = Type Исходный код
Тип синонима образца. Обратите внимание, что полностью заданный тип синонима образца имеет необычную форму с двумя кванторами forall и двумя контекстами ограничений. Например, рассмотрим синоним образца
pattern P x1 x2 ... xn = <some-pattern>
Полный тип P имеет следующий вид
pattern P :: forall universals. required constraints
=> forall existentials. provided constraints
=> t1 -> t2 -> ... -> tn -> t
состоящий из четырёх частей:
- (возможно, пустые списки) универсально квантифицированных переменных типов и обязательных ограничений на них.
- (возможно, пустые списки) экзистенциально квантифицированных переменных типов и предоставляемых ограничений на них.
- типы
t1,t2, ..,tnдляx1,x2, ..,xnсоответственно - тип
tдля<some-pattern>, в котором упоминаются только универсальные переменные.
Типы синонимов образцов взаимодействуют с TH при (a) reifying синонима образца, (b) pretty printing или (c) явном указании сигнатуры типа синонима образца:
- Реификация всегда возвращает тип синонима шаблона, полностью заданный в абстрактном синтаксисе.
- Pretty printing с помощью
pprPatSynTypeоднозначно сокращает тип синонима шаблона в конкретном синтаксисе: общее правило — выводить начальные пустые универсальные кванторы и обязательный контекст как() =>, если далее указаны экзистенциальные кванторы и предоставленный контекст. Если указаны только универсальные кванторы и их обязательный контекст, но нет экзистенциальных кванторов, выводятся только универсальные кванторы и их обязательный контекст. Если указаны оба компонента или ни один из них, выводятся оба компонента (или ни один). - При явном задании типа синонима шаблона с помощью
PatSynSigDуниверсальные кванторы, экзистенциальные кванторы или их контексты можно оставить пустыми.
Дополнительную информацию о синонимах шаблонов и их типах см. в руководстве пользователя GHC: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#pattern-synonyms.
Синтаксис управления фазами.
Конструкторы
| AllPhases | Используется по умолчанию, если не указано иное |
| FromPhase Int | [n] |
| BeforePhase Int | [~n] |
Экземпляры
| Ppr Phases Источник | |||||
| Eq Phases Источник | |||||
| Ord Phases Источник | |||||
Определено в GHC.Internal.TH.Syntax | |||||
| Data Phases Источник | |||||
Определено в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Phases -> c Phases Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Phases Источник toConstr :: Phases -> Constr Источник dataTypeOf :: Phases -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Phases) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Phases) Источник gmapT :: (forall b. Data b => b -> b) -> Phases -> Phases Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Phases -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Phases -> r Источник gmapQ :: (forall d. Data d => d -> u) -> Phases -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> Phases -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> Phases -> m Phases Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Phases -> m Phases Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Phases -> m Phases Источник | |||||
| Generic Phases Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Show Phases Источник | |||||
| Lift Phases Источник | С версии: template-haskell-2.22.1.0 |
||||
| type Rep Phases Источник | |||||
Определено в GHC.Internal.TH.Syntax type Rep Phases = D1 ('MetaData "Phases" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "AllPhases" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FromPhase" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :+: C1 ('MetaCons "BeforePhase" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))) | |||||
Название пакета.
Экземпляры
| Eq PkgName Источник | |||||
| Ord PkgName Источник | |||||
Определено в GHC.Internal.TH.Syntax | |||||
| Data PkgName Источник | |||||
Определено в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PkgName -> c PkgName Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PkgName Источник toConstr :: PkgName -> Constr Источник dataTypeOf :: PkgName -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c PkgName) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PkgName) Источник gmapT :: (forall b. Data b => b -> b) -> PkgName -> PkgName Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PkgName -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PkgName -> r Источник gmapQ :: (forall d. Data d => d -> u) -> PkgName -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> PkgName -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> PkgName -> m PkgName Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PkgName -> m PkgName Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PkgName -> m PkgName Источник | |||||
| Generic PkgName Источник | |||||
Определено в GHC.Internal.TH.Syntax Ассоциированные типы
| |||||
| Show PkgName Источник | |||||
| Lift PkgName Источник | С версии: template-haskell-2.22.1.0 |
||||
| type Rep PkgName Источник | |||||
Определено в GHC.Internal.TH.Syntax | |||||
Конструкторы
| InlineP Name Inline RuleMatch Phases |
|
| OpaqueP Name | { {-# OPAQUE T #-} } |
| SpecialiseEP (Maybe [TyVarBndr ()]) [RuleBndr] Exp (Maybe Inline) Phases | { {-# SPECIALISE [forall t_1 ... t_i]. [forall b_1 ... b_j] [INLINE] [phases] exp #-} } |
| SpecialiseInstP Type | { {-# SPECIALISE instance I #-} } |
| RuleP String (Maybe [TyVarBndr ()]) [RuleBndr] Exp Exp Phases | { {-# RULES "name" [phases] [forall t_1 ... t_i]. [forall b_1 ... b_j] rules... e_1 = e_2 #-} } |
| AnnP AnnTarget Exp | { {-# ANN target exp #-} } |
| LineP Int String | { {-# LINE n "file name" #-} } |
| CompleteP [Name] (Maybe Name) | { {-# COMPLETE C_1, ..., C_i [ :: T ] #-} } |
| SCCP Name (Maybe String) | { {-# SCC fun "optional_name" #-} } |
Связанные шаблоны
| pattern SpecialiseP :: Name -> Type -> Maybe Inline -> Phases -> Pragma |
Прагма специализации старого формата Объединена с более общим конструктором |
Экземпляры
| Ppr Pragma Исходный код | |
Определено в GHC.Boot.TH.Ppr | |
| Eq Pragma Исходный код | |
Определено в GHC.Internal.TH.Syntax | |
| Ord Pragma Исходный код | |
Определено в GHC.Internal.TH.Syntax Методыcompare :: Pragma -> Pragma -> Ordering Исходный код (<) :: Pragma -> Pragma -> Bool Исходный код (<=) :: Pragma -> Pragma -> Bool Исходный код (>) :: Pragma -> Pragma -> Bool Исходный код (>=) :: Pragma -> Pragma -> Bool Исходный код max :: Pragma -> Pragma -> Pragma Исходный код min :: Pragma -> Pragma -> Pragma Исходный код | |
| Data Pragma Исходный код | |
Определено в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Pragma -> c Pragma Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Pragma Исходный код toConstr :: Pragma -> Constr Исходный код dataTypeOf :: Pragma -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Pragma) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Pragma) Исходный код gmapT :: (forall b. Data b => b -> b) -> Pragma -> Pragma Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Pragma -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Pragma -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> Pragma -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> Pragma -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> Pragma -> m Pragma Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Pragma -> m Pragma Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Pragma -> m Pragma Исходный код | |
| Generic Pragma Исходный код | |
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Show Pragma Исходный код | |||||
Определено в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> Pragma -> ShowS Исходный код show :: Pragma -> String Исходный код showList :: [Pragma] -> ShowS Исходный код | |
| Lift Pragma Исходный код | Начиная с: template-haskell-2.22.1.0 |
Определено в GHC.Internal.TH.Lift | |
| type Rep Pragma Исходный код | |
Определено в GHC.Internal.TH.Syntax type Rep Pragma = D1 ('MetaData "Pragma" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (((C1 ('MetaCons "InlineP" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Inline)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RuleMatch) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Phases))) :+: C1 ('MetaCons "OpaqueP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))) :+: (C1 ('MetaCons "SpecialiseEP" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [TyVarBndr ()])) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [RuleBndr])) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Inline)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Phases)))) :+: C1 ('MetaCons "SpecialiseInstP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) :+: ((C1 ('MetaCons "RuleP" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [TyVarBndr ()])) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [RuleBndr]))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Phases)))) :+: C1 ('MetaCons "AnnP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 AnnTarget) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))) :+: (C1 ('MetaCons "LineP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :+: (C1 ('MetaCons "CompleteP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Name))) :+: C1 ('MetaCons "SCCP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String))))))) |
class (MonadIO m, MonadFail m) => Quasi (m :: Type -> Type) where Исходный код
Минимальное полное определение
qNewName, qReport, qRecover, qLookupName, qReify, qReifyFixity, qReifyType, qReifyInstances, qReifyRoles, qReifyAnnotations, qReifyModule, qReifyConStrictness, qLocation, qGetPackageRoot, qAddDependentFile, qAddTempFile, qAddTopDecls, qAddForeignFilePath, qAddModFinalizer, qAddCorePlugin, qGetQ, qPutQ, qIsExtEnabled, qExtsEnabled, qPutDoc, qGetDoc
Методы
qNewName :: String -> m Name Исходный код
Новые имена. См. newName.
qReport :: Bool -> String -> m () Исходный код
Сообщить об ошибке (True) или предупреждении (False) ...но продолжить выполнение; чтобы остановить выполнение, используйте fail. См. report.
Аргументы
| :: m a | обработчик ошибок |
| -> m a | действие, которое может завершиться ошибкой |
| -> m a | Обработать ошибку в монаде |
См. recover.
qLookupName :: Bool -> String -> m (Maybe Name) Исходный код
True = пространство имён типов, False = пространство имён значений. См. lookupName.
qReify :: Name -> m Info Исходный код
См. reify.
qReifyFixity :: Name -> m (Maybe Fixity) Исходный код
См. reifyFixity.
qReifyType :: Name -> m Type Исходный код
См. reifyType.
qReifyInstances :: Name -> [Type] -> m [Dec] Исходный код
Является ли (n tys) экземпляром? Возвращает список подходящих объявлений экземпляров Dec (с пустыми под-объявлениями). Работает для классов и функций типов. См. reifyInstances.
qReifyRoles :: Name -> m [Role] Исходный код
См. reifyRoles.
qReifyAnnotations :: Data a => AnnLookup -> m [a] Исходный код
См. reifyAnnotations.
qReifyModule :: Module -> m ModuleInfo Исходный код
См. reifyModule.
qReifyConStrictness :: Name -> m [DecidedStrictness] Исходный код
См. reifyConStrictness.
qLocation :: m Loc Исходный код
См. location.
qRunIO :: IO a -> m a Исходный код
Ввод-вывод (опасно). См. runIO.
qGetPackageRoot :: m FilePath Исходный код
См. getPackageRoot.
qAddDependentFile :: FilePath -> m () Исходный код
См. addDependentFile.
qAddTempFile :: String -> m FilePath Исходный код
См. addTempFile.
qAddTopDecls :: [Dec] -> m () Исходный код
См. addTopDecls.
qAddForeignFilePath :: ForeignSrcLang -> String -> m () Исходный код
См. addForeignFilePath.
qAddModFinalizer :: Q () -> m () Исходный код
См. addModFinalizer.
qAddCorePlugin :: String -> m () Исходный код
См. addCorePlugin.
qGetQ :: Typeable a => m (Maybe a) Исходный код
См. getQ.
qPutQ :: Typeable a => a -> m () Исходный код
См. putQ.
qIsExtEnabled :: Extension -> m Bool Исходный код
См. isExtEnabled.
qExtsEnabled :: m [Extension] Исходный код
См. extsEnabled.
qPutDoc :: DocLoc -> String -> m () Исходный код
См. putDoc.
qGetDoc :: DocLoc -> m (Maybe String) Исходный код
См. getDoc.
Экземпляры
| Quasi Q Источник | |
Определён в GHC.Internal.TH.Syntax МетодыqNewName :: String -> Q Name Источник qReport :: Bool -> String -> Q () Источник qRecover :: Q a -> Q a -> Q a Источник qLookupName :: Bool -> String -> Q (Maybe Name) Источник qReify :: Name -> Q Info Источник qReifyFixity :: Name -> Q (Maybe Fixity) Источник qReifyType :: Name -> Q Type Источник qReifyInstances :: Name -> [Type] -> Q [Dec] Источник qReifyRoles :: Name -> Q [Role] Источник qReifyAnnotations :: Data a => AnnLookup -> Q [a] Источник qReifyModule :: Module -> Q ModuleInfo Источник qReifyConStrictness :: Name -> Q [DecidedStrictness] Источник qRunIO :: IO a -> Q a Источник qGetPackageRoot :: Q FilePath Источник qAddDependentFile :: FilePath -> Q () Источник qAddTempFile :: String -> Q FilePath Источник qAddTopDecls :: [Dec] -> Q () Источник qAddForeignFilePath :: ForeignSrcLang -> String -> Q () Источник qAddModFinalizer :: Q () -> Q () Источник qAddCorePlugin :: String -> Q () Источник qGetQ :: Typeable a => Q (Maybe a) Источник qPutQ :: Typeable a => a -> Q () Источник qIsExtEnabled :: Extension -> Q Bool Источник qExtsEnabled :: Q [Extension] Источник | |
| Quasi IO Источник | |
Определён в GHC.Internal.TH.Syntax МетодыqNewName :: String -> IO Name Источник qReport :: Bool -> String -> IO () Источник qRecover :: IO a -> IO a -> IO a Источник qLookupName :: Bool -> String -> IO (Maybe Name) Источник qReify :: Name -> IO Info Источник qReifyFixity :: Name -> IO (Maybe Fixity) Источник qReifyType :: Name -> IO Type Источник qReifyInstances :: Name -> [Type] -> IO [Dec] Источник qReifyRoles :: Name -> IO [Role] Источник qReifyAnnotations :: Data a => AnnLookup -> IO [a] Источник qReifyModule :: Module -> IO ModuleInfo Источник qReifyConStrictness :: Name -> IO [DecidedStrictness] Источник qRunIO :: IO a -> IO a Источник qGetPackageRoot :: IO FilePath Источник qAddDependentFile :: FilePath -> IO () Источник qAddTempFile :: String -> IO FilePath Источник qAddTopDecls :: [Dec] -> IO () Источник qAddForeignFilePath :: ForeignSrcLang -> String -> IO () Источник qAddModFinalizer :: Q () -> IO () Источник qAddCorePlugin :: String -> IO () Источник qGetQ :: Typeable a => IO (Maybe a) Источник qPutQ :: Typeable a => a -> IO () Источник qIsExtEnabled :: Extension -> IO Bool Источник qExtsEnabled :: IO [Extension] Источник | |
Выражение диапазона списка/перечисления.
Конструкторы
| FromR Exp | [n ..] |
| FromThenR Exp Exp | [n, m ..] |
| FromToR Exp Exp | [n .. m] |
| FromThenToR Exp Exp Exp | [n, m .. k] |
Экземпляры
| Ppr Range Источник | |||||
| Eq Range Источник | |||||
| Ord Range Источник | |||||
Определён в GHC.Internal.TH.Syntax | |||||
| Data Range Источник | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Range -> c Range Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Range Источник toConstr :: Range -> Constr Источник dataTypeOf :: Range -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Range) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Range) Источник gmapT :: (forall b. Data b => b -> b) -> Range -> Range Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Range -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Range -> r Источник gmapQ :: (forall d. Data d => d -> u) -> Range -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> Range -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> Range -> m Range Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Range -> m Range Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Range -> m Range Источник | |||||
| Generic Range Источник | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Show Range Источник | |||||
| Lift Range Источник | С версии: template-haskell-2.22.1.0 |
||||
| type Rep Range Исходный код | |
Определено в GHC.Internal.TH.Syntax type Rep Range = D1 ('MetaData "Range" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) ((C1 ('MetaCons "FromR" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons "FromThenR" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))) :+: (C1 ('MetaCons "FromToR" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons "FromThenToR" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))))) | |
data Role Исходный код
Аннотации ролей
Конструкторы
| NominalR | nominal |
| RepresentationalR | representational |
| PhantomR | phantom |
| InferR | _ |
Экземпляры
| Ppr Role Источник | |||||
| Eq Role Источник | |||||
| Ord Role Источник | |||||
Определён в GHC.Internal.TH.Syntax | |||||
| Data Role Источник | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Role -> c Role Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Role Источник toConstr :: Role -> Constr Источник dataTypeOf :: Role -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Role) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Role) Источник gmapT :: (forall b. Data b => b -> b) -> Role -> Role Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Role -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Role -> r Источник gmapQ :: (forall d. Data d => d -> u) -> Role -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> Role -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> Role -> m Role Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Role -> m Role Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Role -> m Role Источник | |||||
| Generic Role Источник | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Show Role Источник | |||||
| Lift Role Источник | Начиная с: template-haskell-2.22.1.0 |
||||
| type Rep Role Источник | |||||
Определён в GHC.Internal.TH.Syntax type Rep Role = D1 ('MetaData "Role" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) ((C1 ('MetaCons "NominalR" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RepresentationalR" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PhantomR" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "InferR" 'PrefixI 'False) (U1 :: Type -> Type))) | |||||
Модификатор CONLIKE, например одна из различных прагм inline или её отсутствие (FunLike).
Экземпляры
| Ppr RuleMatch Источник | |
| Eq RuleMatch Источник | |
| Ord RuleMatch Источник | |
Определён в GHC.Internal.TH.Syntax Методыcompare :: RuleMatch -> RuleMatch -> Ordering Источник (<) :: RuleMatch -> RuleMatch -> Bool Источник (<=) :: RuleMatch -> RuleMatch -> Bool Источник (>) :: RuleMatch -> RuleMatch -> Bool Источник (>=) :: RuleMatch -> RuleMatch -> Bool Источник | |
| Data RuleMatch Источник | |
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RuleMatch -> c RuleMatch Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RuleMatch Источник toConstr :: RuleMatch -> Constr Источник dataTypeOf :: RuleMatch -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c RuleMatch) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RuleMatch) Источник gmapT :: (forall b. Data b => b -> b) -> RuleMatch -> RuleMatch Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RuleMatch -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RuleMatch -> r Источник gmapQ :: (forall d. Data d => d -> u) -> RuleMatch -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> RuleMatch -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> RuleMatch -> m RuleMatch Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RuleMatch -> m RuleMatch Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RuleMatch -> m RuleMatch Источник | |
| Generic RuleMatch Источник | |
Определён в GHC.Internal.TH.Syntax | |
| Show RuleMatch Источник | |
| Lift RuleMatch Источник | Начиная с: template-haskell-2.22.1.0 |
| type Rep RuleMatch Источник | |
Уровень безопасности, как в объявлении Foreign.
Конструкторы
| Unsafe | |
| Safe | |
| Interruptible |
Экземпляры
| Eq Safety Исходный код | |||||
Определён в GHC.Internal.TH.Syntax | |||||
| Ord Safety Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методыcompare :: Safety -> Safety -> Ordering Исходный код (<) :: Safety -> Safety -> Bool Исходный код (<=) :: Safety -> Safety -> Bool Исходный код (>) :: Safety -> Safety -> Bool Исходный код (>=) :: Safety -> Safety -> Bool Исходный код max :: Safety -> Safety -> Safety Исходный код min :: Safety -> Safety -> Safety Исходный код | |||||
| Data Safety Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Safety -> c Safety Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Safety Исходный код toConstr :: Safety -> Constr Исходный код dataTypeOf :: Safety -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Safety) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Safety) Исходный код gmapT :: (forall b. Data b => b -> b) -> Safety -> Safety Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Safety -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Safety -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> Safety -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> Safety -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> Safety -> m Safety Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Safety -> m Safety Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Safety -> m Safety Исходный код | |||||
| Generic Safety Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Show Safety Исходный код | |||||
Определён в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> Safety -> ShowS Исходный код show :: Safety -> String Исходный код showList :: [Safety] -> ShowS Исходный код | |||||
| Lift Safety Исходный код | Начиная с: template-haskell-2.22.1.0 |
||||
Определён в GHC.Internal.TH.Lift | |||||
| type Rep Safety Исходный код | |||||
Определён в GHC.Internal.TH.Syntax | |||||
data SourceStrictness Исходный код
SourceStrictness соответствует аннотациям строгости, найденным в исходном коде.
Они могут не совпадать с аннотациями, возвращаемыми reifyConStrictness. Дополнительные сведения см. в reifyConStrictness.
Конструкторы
| NoSourceStrictness | C a |
| SourceLazy | C {~}a |
| SourceStrict | C {!}a |
Экземпляры
| Ppr SourceStrictness Исходный код | |||||
Определено в GHC.Boot.TH.Ppr Методыppr :: SourceStrictness -> Doc Исходный код ppr_list :: [SourceStrictness] -> Doc Исходный код | |||||
| Eq SourceStrictness Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Методы(==) :: SourceStrictness -> SourceStrictness -> Bool Исходный код (/=) :: SourceStrictness -> SourceStrictness -> Bool Исходный код | |||||
| Ord SourceStrictness Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Методыcompare :: SourceStrictness -> SourceStrictness -> Ordering Исходный код (<) :: SourceStrictness -> SourceStrictness -> Bool Исходный код (<=) :: SourceStrictness -> SourceStrictness -> Bool Исходный код (>) :: SourceStrictness -> SourceStrictness -> Bool Исходный код (>=) :: SourceStrictness -> SourceStrictness -> Bool Исходный код max :: SourceStrictness -> SourceStrictness -> SourceStrictness Исходный код min :: SourceStrictness -> SourceStrictness -> SourceStrictness Исходный код | |||||
| Data SourceStrictness Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SourceStrictness -> c SourceStrictness Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SourceStrictness Исходный код toConstr :: SourceStrictness -> Constr Исходный код dataTypeOf :: SourceStrictness -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SourceStrictness) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SourceStrictness) Исходный код gmapT :: (forall b. Data b => b -> b) -> SourceStrictness -> SourceStrictness Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SourceStrictness -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SourceStrictness -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> SourceStrictness -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> SourceStrictness -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> SourceStrictness -> m SourceStrictness Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SourceStrictness -> m SourceStrictness Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SourceStrictness -> m SourceStrictness Исходный код | |||||
| Generic SourceStrictness Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Ассоциированные типы
Методыfrom :: SourceStrictness -> Rep SourceStrictness x Исходный код to :: Rep SourceStrictness x -> SourceStrictness Исходный код | |||||
| Show SourceStrictness Исходный код | |||||
Определено в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> SourceStrictness -> ShowS Исходный код show :: SourceStrictness -> String Исходный код showList :: [SourceStrictness] -> ShowS Исходный код | |||||
| Lift SourceStrictness Исходный код | Начиная с: template-haskell-2.22.1.0 |
||||
Определено в GHC.Internal.TH.Lift Методыlift :: Quote m => SourceStrictness -> m Exp Исходный код liftTyped :: forall (m :: Type -> Type). Quote m => SourceStrictness -> Code m SourceStrictness Исходный код | |||||
| type Rep SourceStrictness Исходный код | |||||
Определено в GHC.Internal.TH.Syntax type Rep SourceStrictness = D1 ('MetaData "SourceStrictness" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "NoSourceStrictness" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SourceLazy" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SourceStrict" 'PrefixI 'False) (U1 :: Type -> Type))) | |||||
data SourceUnpackedness Исходный код
SourceUnpackedness соответствует аннотациям распаковки, встречающимся в исходном коде.
Они могут не совпадать с аннотациями, возвращаемыми reifyConStrictness. Дополнительные сведения см. в reifyConStrictness.
Конструкторы
| NoSourceUnpackedness | C a |
| SourceNoUnpack | C { {-# NOUNPACK #-} } a |
| SourceUnpack | C { {-# UNPACK #-} } a |
Экземпляры
| Ppr SourceUnpackedness Исходный код | |||||
Определено в GHC.Boot.TH.Ppr Методыppr :: SourceUnpackedness -> Doc Исходный код ppr_list :: [SourceUnpackedness] -> Doc Исходный код | |||||
| Eq SourceUnpackedness Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Методы(==) :: SourceUnpackedness -> SourceUnpackedness -> Bool Исходный код (/=) :: SourceUnpackedness -> SourceUnpackedness -> Bool Исходный код | |||||
| Ord SourceUnpackedness Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Методыcompare :: SourceUnpackedness -> SourceUnpackedness -> Ordering Исходный код (<) :: SourceUnpackedness -> SourceUnpackedness -> Bool Исходный код (<=) :: SourceUnpackedness -> SourceUnpackedness -> Bool Исходный код (>) :: SourceUnpackedness -> SourceUnpackedness -> Bool Исходный код (>=) :: SourceUnpackedness -> SourceUnpackedness -> Bool Исходный код max :: SourceUnpackedness -> SourceUnpackedness -> SourceUnpackedness Исходный код min :: SourceUnpackedness -> SourceUnpackedness -> SourceUnpackedness Исходный код | |||||
| Data SourceUnpackedness Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SourceUnpackedness -> c SourceUnpackedness Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SourceUnpackedness Исходный код toConstr :: SourceUnpackedness -> Constr Исходный код dataTypeOf :: SourceUnpackedness -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SourceUnpackedness) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SourceUnpackedness) Исходный код gmapT :: (forall b. Data b => b -> b) -> SourceUnpackedness -> SourceUnpackedness Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SourceUnpackedness -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SourceUnpackedness -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> SourceUnpackedness -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> SourceUnpackedness -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> SourceUnpackedness -> m SourceUnpackedness Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SourceUnpackedness -> m SourceUnpackedness Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SourceUnpackedness -> m SourceUnpackedness Исходный код | |||||
| Generic SourceUnpackedness Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Ассоциированные типы
Методыfrom :: SourceUnpackedness -> Rep SourceUnpackedness x Исходный код to :: Rep SourceUnpackedness x -> SourceUnpackedness Исходный код | |||||
| Show SourceUnpackedness Исходный код | |||||
Определено в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> SourceUnpackedness -> ShowS Исходный код show :: SourceUnpackedness -> String Исходный код showList :: [SourceUnpackedness] -> ShowS Исходный код | |||||
| Lift SourceUnpackedness Исходный код | Начиная с: template-haskell-2.22.1.0 |
||||
Определено в GHC.Internal.TH.Lift Методыlift :: Quote m => SourceUnpackedness -> m Exp Исходный код liftTyped :: forall (m :: Type -> Type). Quote m => SourceUnpackedness -> Code m SourceUnpackedness Исходный код | |||||
| type Rep SourceUnpackedness Исходный код | |||||
Определено в GHC.Internal.TH.Syntax type Rep SourceUnpackedness = D1 ('MetaData "SourceUnpackedness" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "NoSourceUnpackedness" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SourceNoUnpack" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SourceUnpack" 'PrefixI 'False) (U1 :: Type -> Type))) | |||||
data Specificity Исходный код
Специфичность переменной типа в forall ....
Конструкторы
| SpecifiedSpec | a |
| InferredSpec | {a} |
Экземпляры
| PprFlag Specificity Исходный код | |||||
Определено в GHC.Boot.TH.Ppr Методы | |||||
| Eq Specificity Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Методы(==) :: Specificity -> Specificity -> Bool Исходный код (/=) :: Specificity -> Specificity -> Bool Исходный код | |||||
| Ord Specificity Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Методыcompare :: Specificity -> Specificity -> Ordering Исходный код (<) :: Specificity -> Specificity -> Bool Исходный код (<=) :: Specificity -> Specificity -> Bool Исходный код (>) :: Specificity -> Specificity -> Bool Исходный код (>=) :: Specificity -> Specificity -> Bool Исходный код max :: Specificity -> Specificity -> Specificity Исходный код min :: Specificity -> Specificity -> Specificity Исходный код | |||||
| Data Specificity Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Specificity -> c Specificity Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Specificity Исходный код toConstr :: Specificity -> Constr Исходный код dataTypeOf :: Specificity -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Specificity) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Specificity) Исходный код gmapT :: (forall b. Data b => b -> b) -> Specificity -> Specificity Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Specificity -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Specificity -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> Specificity -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> Specificity -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> Specificity -> m Specificity Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Specificity -> m Specificity Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Specificity -> m Specificity Исходный код | |||||
| Generic Specificity Исходный код | |||||
Определено в GHC.Internal.TH.Syntax Ассоциированные типы
Методыfrom :: Specificity -> Rep Specificity x Исходный код to :: Rep Specificity x -> Specificity Исходный код | |||||
| Show Specificity Исходный код | |||||
Определено в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> Specificity -> ShowS Исходный код show :: Specificity -> String Исходный код showList :: [Specificity] -> ShowS Исходный код | |||||
| DefaultBndrFlag Specificity Исходный код | |||||
Определено в Language.Haskell.TH.Lib Методы | |||||
| Lift Specificity Исходный код | Начиная с: template-haskell-2.22.1.0 |
||||
Определено в GHC.Internal.TH.Lift Методыlift :: Quote m => Specificity -> m Exp Исходный код liftTyped :: forall (m :: Type -> Type). Quote m => Specificity -> Code m Specificity Исходный код | |||||
| type Rep Specificity Исходный код | |||||
type Strict = Bang Исходный код
Начиная с template-haskell-2.11.0.0, Strict заменён на Bang.
type StrictType = BangType Исходный код
Начиная с template-haskell-2.11.0.0, StrictType заменён на BangType.
type SumAlt = Int Исходный код
В UnboxedSumE и UnboxedSumP — номер, связанный с определённым конструктором данных. Нумерация SumAlt начинается с единицы, и это значение не должно превышать значение соответствующего SumArity. Например:
-
У
(#_|#)значениеSumAltравно 1 (из общегоSumArity, равного 2) -
У
(#|_#)значениеSumAltравно 2 (из общегоSumArity, равного 2)
type SumArity = Int Исходный код
В UnboxedSumE, UnboxedSumT и UnboxedSumP — общее количество SumAlt. Например, значение SumArity для (#|#) равно 2.
newtype TExp (a :: TYPE r) Исходный код
Типизированная обёртка вокруг Exp.
Это типизированное представление термов, создаваемых типизированными кавычками.
Полиморфный по представлению начиная с template-haskell-2.16.0.0.
Экземпляры
Литералы уровня типов.
Экземпляры
| Ppr TyLit Источник | |||||
| Eq TyLit Источник | |||||
| Ord TyLit Источник | |||||
Определено в GHC.Internal.TH.Syntax | |||||
| Data TyLit Источник | |||||
Определено в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TyLit -> c TyLit Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TyLit Источник toConstr :: TyLit -> Constr Источник dataTypeOf :: TyLit -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TyLit) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TyLit) Источник gmapT :: (forall b. Data b => b -> b) -> TyLit -> TyLit Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TyLit -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TyLit -> r Источник gmapQ :: (forall d. Data d => d -> u) -> TyLit -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> TyLit -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> TyLit -> m TyLit Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TyLit -> m TyLit Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TyLit -> m TyLit Источник | |||||
| Generic TyLit Источник | |||||
Определено в GHC.Internal.TH.Syntax Связанные типы
| |||||
| Show TyLit Источник | |||||
| Lift TyLit Источник | С версии: template-haskell-2.22.1.0 |
||||
| type Rep TyLit Источник | |||||
Определено в GHC.Internal.TH.Syntax type Rep TyLit = D1 ('MetaData "TyLit" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "NumTyLit" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)) :+: (C1 ('MetaCons "StrTyLit" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :+: C1 ('MetaCons "CharTyLit" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Char)))) | |||||
data TyVarBndr flag Исходный код
Параметр типа flag задаётся одним из следующих типов:
-
Specificity(примеры:ForallC,ForallT) -
BndrVis(примеры:DataD,ClassDи т. д.) -
()— универсальный тип для других форм связующих, включаяForallVisT,DataInstD,RulePиTyVarSig
Экземпляры
| Functor TyVarBndr Источник | |
| Foldable TyVarBndr Источник | |
Определён в GHC.Internal.TH.Syntax Методыfold :: Monoid m => TyVarBndr m -> m Источник foldMap :: Monoid m => (a -> m) -> TyVarBndr a -> m Источник foldMap' :: Monoid m => (a -> m) -> TyVarBndr a -> m Источник foldr :: (a -> b -> b) -> b -> TyVarBndr a -> b Источник foldr' :: (a -> b -> b) -> b -> TyVarBndr a -> b Источник foldl :: (b -> a -> b) -> b -> TyVarBndr a -> b Источник foldl' :: (b -> a -> b) -> b -> TyVarBndr a -> b Источник foldr1 :: (a -> a -> a) -> TyVarBndr a -> a Источник foldl1 :: (a -> a -> a) -> TyVarBndr a -> a Источник toList :: TyVarBndr a -> [a] Источник null :: TyVarBndr a -> Bool Источник length :: TyVarBndr a -> Int Источник elem :: Eq a => a -> TyVarBndr a -> Bool Источник maximum :: Ord a => TyVarBndr a -> a Источник minimum :: Ord a => TyVarBndr a -> a Источник | |
| Traversable TyVarBndr Источник | |
Определён в GHC.Internal.TH.Syntax Методыtraverse :: Applicative f => (a -> f b) -> TyVarBndr a -> f (TyVarBndr b) Источник sequenceA :: Applicative f => TyVarBndr (f a) -> f (TyVarBndr a) Источник mapM :: Monad m => (a -> m b) -> TyVarBndr a -> m (TyVarBndr b) Источник sequence :: Monad m => TyVarBndr (m a) -> m (TyVarBndr a) Источник | |
| Lift a => Lift (TyVarBndr a :: Type) Источник | Начиная с: template-haskell-2.22.1.0 |
| PprFlag flag => Ppr (TyVarBndr flag) Источник | |
| Eq flag => Eq (TyVarBndr flag) Источник | |
| Ord flag => Ord (TyVarBndr flag) Источник | |
Определён в GHC.Internal.TH.Syntax Методыcompare :: TyVarBndr flag -> TyVarBndr flag -> Ordering Источник (<) :: TyVarBndr flag -> TyVarBndr flag -> Bool Источник (<=) :: TyVarBndr flag -> TyVarBndr flag -> Bool Источник (>) :: TyVarBndr flag -> TyVarBndr flag -> Bool Источник (>=) :: TyVarBndr flag -> TyVarBndr flag -> Bool Источник max :: TyVarBndr flag -> TyVarBndr flag -> TyVarBndr flag Источник min :: TyVarBndr flag -> TyVarBndr flag -> TyVarBndr flag Источник | |
| Data flag => Data (TyVarBndr flag) Источник | |
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TyVarBndr flag -> c (TyVarBndr flag) Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (TyVarBndr flag) Источник toConstr :: TyVarBndr flag -> Constr Источник dataTypeOf :: TyVarBndr flag -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (TyVarBndr flag)) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (TyVarBndr flag)) Источник gmapT :: (forall b. Data b => b -> b) -> TyVarBndr flag -> TyVarBndr flag Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TyVarBndr flag -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TyVarBndr flag -> r Источник gmapQ :: (forall d. Data d => d -> u) -> TyVarBndr flag -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> TyVarBndr flag -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> TyVarBndr flag -> m (TyVarBndr flag) Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TyVarBndr flag -> m (TyVarBndr flag) Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TyVarBndr flag -> m (TyVarBndr flag) Источник | |
| Generic (TyVarBndr flag) Источник | |
Определено в GHC.Internal.TH.Syntax Ассоциированные типы
| |||||
| Show flag => Show (TyVarBndr flag) Источник | |||||
| type Rep (TyVarBndr flag) Источник | |||||
Определено в GHC.Internal.TH.Syntax type Rep (TyVarBndr flag) = D1 ('MetaData "TyVarBndr" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "PlainTV" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 flag)) :+: C1 ('MetaCons "KindedTV" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 flag) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Kind)))) | |||||
data TypeFamilyHead Источник
Общие элементы OpenTypeFamilyD и ClosedTypeFamilyD. По аналогии с «заголовком» для классов типов и экземпляров классов типов, как это определено в статье Классы типов: исследование пространства проектирования, TypeFamilyHead определяется как элементы объявления между type family и where.
Конструкторы
| TypeFamilyHead Name [TyVarBndr BndrVis] FamilyResultSig (Maybe InjectivityAnn) |
Экземпляры
| Eq TypeFamilyHead Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методы(==) :: TypeFamilyHead -> TypeFamilyHead -> Bool Исходный код (/=) :: TypeFamilyHead -> TypeFamilyHead -> Bool Исходный код | |||||
| Ord TypeFamilyHead Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методыcompare :: TypeFamilyHead -> TypeFamilyHead -> Ordering Исходный код (<) :: TypeFamilyHead -> TypeFamilyHead -> Bool Исходный код (<=) :: TypeFamilyHead -> TypeFamilyHead -> Bool Исходный код (>) :: TypeFamilyHead -> TypeFamilyHead -> Bool Исходный код (>=) :: TypeFamilyHead -> TypeFamilyHead -> Bool Исходный код max :: TypeFamilyHead -> TypeFamilyHead -> TypeFamilyHead Исходный код min :: TypeFamilyHead -> TypeFamilyHead -> TypeFamilyHead Исходный код | |||||
| Data TypeFamilyHead Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TypeFamilyHead -> c TypeFamilyHead Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TypeFamilyHead Исходный код toConstr :: TypeFamilyHead -> Constr Исходный код dataTypeOf :: TypeFamilyHead -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TypeFamilyHead) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TypeFamilyHead) Исходный код gmapT :: (forall b. Data b => b -> b) -> TypeFamilyHead -> TypeFamilyHead Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TypeFamilyHead -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TypeFamilyHead -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> TypeFamilyHead -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> TypeFamilyHead -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> TypeFamilyHead -> m TypeFamilyHead Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TypeFamilyHead -> m TypeFamilyHead Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TypeFamilyHead -> m TypeFamilyHead Исходный код | |||||
| Generic TypeFamilyHead Исходный код | |||||
Определён в GHC.Internal.TH.Syntax Связанные типы
Методыfrom :: TypeFamilyHead -> Rep TypeFamilyHead x Исходный код to :: Rep TypeFamilyHead x -> TypeFamilyHead Исходный код | |||||
| Show TypeFamilyHead Исходный код | |||||
Определён в GHC.Internal.TH.Syntax МетодыshowsPrec :: Int -> TypeFamilyHead -> ShowS Исходный код show :: TypeFamilyHead -> String Исходный код showList :: [TypeFamilyHead] -> ShowS Исходный код | |||||
| Lift TypeFamilyHead Исходный код | Начиная с: template-haskell-2.22.1.0 |
||||
Определён в GHC.Internal.TH.Lift Методыlift :: Quote m => TypeFamilyHead -> m Exp Исходный код liftTyped :: forall (m :: Type -> Type). Quote m => TypeFamilyHead -> Code m TypeFamilyHead Исходный код | |||||
| type Rep TypeFamilyHead Исходный код | |||||
Определено в GHC.Internal.TH.Syntax type Rep TypeFamilyHead = D1 ('MetaData "TypeFamilyHead" "GHC.Internal.TH.Syntax" "ghc-internal" 'False) (C1 ('MetaCons "TypeFamilyHead" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis])) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FamilyResultSig) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe InjectivityAnn))))) |
Uniq используется GHC для различения имён.
В PrimTyConI является ли конструктор типа непродвигаемым?
type VarStrictType = VarBangType Источник
Начиная с template-haskell-2.11.0.0, VarStrictType заменён на VarBangType.
makeRelativeToProject :: FilePath -> Q FilePath Источник
Входное значение — путь к файлу; если он относительный, он отсчитывается от корня пакета.
liftString :: Quote m => String -> m Exp Источник
class Lift (t :: TYPE r) where Источник
Для экземпляра Lift любое из его значений можно преобразовать в выражение Template Haskell. Это необходимо, когда значение, используемое в цитате Template Haskell, связано вне оксфордских скобок ([| ... |] или [|| ... ||]), но не на верхнем уровне. Например:
add1 :: Int -> Code Q Int add1 x = [|| x + 1 ||]
Template Haskell не может знать, какое значение примет x во время подстановки, поэтому требует, чтобы тип x был экземпляром Lift.
Экземпляр Lift должен удовлетворять $(lift x) ≡ x и $$(liftTyped x) ≡ x для всех x, где $(...) и $$(...) — подстановки Template Haskell. Кроме того, предполагается, что lift x ≡ unTypeCode (liftTyped x).
Экземпляры Lift можно автоматически выводить с помощью языкового расширения GHC -XDeriveLift:
{-# LANGUAGE DeriveLift #-}
module Foo where
import Language.Haskell.TH.Syntax
data Bar a = Bar1 a (Bar a) | Bar2 String
deriving Lift
Полиморфный по представлению, начиная с template-haskell-2.16.0.0.
Этот интерфейс доступен как из пакета template-haskell-lift, так и из пакета template-haskell. Если вам не нужен весь интерфейс template-haskell, рассмотрите возможность импорта из более стабильного пакета template-haskell-lift.
Минимальное полное определение
Методы
lift :: Quote m => t -> m Exp Источник
Преобразует значение в выражение Template Haskell, пригодное для использования в подстановке.
liftTyped :: forall (m :: Type -> Type). Quote m => t -> Code m t Источник
Преобразует значение в типизированное выражение Template Haskell, пригодное для использования в типизированной подстановке.
Начиная с: template-haskell-2.16.0.0
Экземпляры
| Lift Addr# Исходный код |
Создаёт литерал Начиная с: template-haskell-2.16.0.0 |
Определено в GHC.Internal.TH.Lift | |
| Lift Double# Исходный код | Начиная с: template-haskell-2.16.0.0 |
Определено в GHC.Internal.TH.Lift | |
| Lift Float# Исходный код | Начиная с: template-haskell-2.16.0.0 |
Определено в GHC.Internal.TH.Lift | |
| Lift Int# Исходный код | Начиная с: template-haskell-2.16.0.0 |
Определено в GHC.Internal.TH.Lift | |
| Lift ByteArray Исходный код | |
Определено в Data.Array.Byte | |
| Lift Void Исходный код | Начиная с: template-haskell-2.15.0.0 |
Определено в GHC.Internal.TH.Lift | |
| Lift ForeignSrcLang Исходный код | Начиная с: template-haskell-2.22.1.0 |
Определено в GHC.Internal.TH.Lift Методыlift :: Quote m => ForeignSrcLang -> m Exp Исходный код liftTyped :: forall (m :: Type -> Type). Quote m => ForeignSrcLang -> Code m ForeignSrcLang Исходный код | |
| Lift Int16 Исходный код | |
Определено в GHC.Internal.TH.Lift | |
| Lift Int32 Исходный код | |
Определено в GHC.Internal.TH.Lift | |
| Lift Int64 Исходный код | |
Определено в GHC.Internal.TH.Lift | |
| Lift Int8 Исходный код | |
Определено в GHC.Internal.TH.Lift | |
| Lift Extension Исходный код | Начиная с: template-haskell-2.22.1.0 |
Определено в GHC.Internal.TH.Lift | |
| Lift AnnLookup Исходный код | Начиная с: template-haskell-2.22.1.0 |
Определено в GHC.Internal.TH.Lift | |
| Lift AnnTarget Исходный код | Начиная с: template-haskell-2.22.1.0 |
Определено в GHC.Internal.TH.Lift | |
| Lift Bang Исходный код | Начиная с: template-haskell-2.22.1.0 |
Определено в GHC.Internal.TH.Lift | |
| Lift BndrVis Исходный код | Начиная с: template-haskell-2.22.1.0 |
| Lift Body Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift Bytes Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift Callconv Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift Clause Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift Con Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift Dec Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift DecidedStrictness Источник | Начиная с: template-haskell-2.22.1.0 |
Определено в GHC.Internal.TH.Lift Методыlift :: Quote m => DecidedStrictness -> m Exp Источник liftTyped :: forall (m :: Type -> Type). Quote m => DecidedStrictness -> Code m DecidedStrictness Источник | |
| Lift DerivClause Источник | Начиная с: template-haskell-2.22.1.0 |
Определено в GHC.Internal.TH.Lift Методыlift :: Quote m => DerivClause -> m Exp Источник liftTyped :: forall (m :: Type -> Type). Quote m => DerivClause -> Code m DerivClause Источник | |
| Lift DerivStrategy Источник | Начиная с: template-haskell-2.22.1.0 |
Определено в GHC.Internal.TH.Lift Методыlift :: Quote m => DerivStrategy -> m Exp Источник liftTyped :: forall (m :: Type -> Type). Quote m => DerivStrategy -> Code m DerivStrategy Источник | |
| Lift DocLoc Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift Exp Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift FamilyResultSig Источник | Начиная с: template-haskell-2.22.1.0 |
Определено в GHC.Internal.TH.Lift Методыlift :: Quote m => FamilyResultSig -> m Exp Источник liftTyped :: forall (m :: Type -> Type). Quote m => FamilyResultSig -> Code m FamilyResultSig Источник | |
| Lift Fixity Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift FixityDirection Источник | Начиная с: template-haskell-2.22.1.0 |
Определено в GHC.Internal.TH.Lift Методыlift :: Quote m => FixityDirection -> m Exp Источник liftTyped :: forall (m :: Type -> Type). Quote m => FixityDirection -> Code m FixityDirection Источник | |
| Lift Foreign Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift FunDep Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift Guard Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift Info Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift InjectivityAnn Источник | Начиная с: template-haskell-2.22.1.0 |
Определено в GHC.Internal.TH.Lift Методыlift :: Quote m => InjectivityAnn -> m Exp Источник liftTyped :: forall (m :: Type -> Type). Quote m => InjectivityAnn -> Code m InjectivityAnn Источник | |
| Lift Inline Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift Lit Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift Loc Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift Match Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift ModName Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift Module Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift Name Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift NameFlavour Источник | Начиная с: template-haskell-2.22.1.0 |
Определено в GHC.Internal.TH.Lift Методыlift :: Quote m => NameFlavour -> m Exp Источник liftTyped :: forall (m :: Type -> Type). Quote m => NameFlavour -> Code m NameFlavour Источник | |
| Lift NameIs Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift NameSpace Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift NamespaceSpecifier Источник | Начиная с: template-haskell-2.22.1.0 |
Определён в GHC.Internal.TH.Lift Методыlift :: Quote m => NamespaceSpecifier -> m Exp Исходный код liftTyped :: forall (m :: Type -> Type). Quote m => NamespaceSpecifier -> Code m NamespaceSpecifier Исходный код | |
| Lift OccName Исходный код | Начиная с: template-haskell-2.22.1.0 |
Определён в GHC.Internal.TH.Lift | |
| Lift Overlap Исходный код | Начиная с: template-haskell-2.22.1.0 |
Определён в GHC.Internal.TH.Lift | |
| Lift Pat Исходный код | Начиная с: template-haskell-2.22.1.0 |
Определён в GHC.Internal.TH.Lift | |
| Lift PatSynArgs Исходный код | Начиная с: template-haskell-2.22.1.0 |
Определён в GHC.Internal.TH.Lift Методыlift :: Quote m => PatSynArgs -> m Exp Исходный код liftTyped :: forall (m :: Type -> Type). Quote m => PatSynArgs -> Code m PatSynArgs Исходный код | |
| Lift PatSynDir Исходный код | Начиная с: template-haskell-2.22.1.0 |
Определён в GHC.Internal.TH.Lift | |
| Lift Phases Исходный код | Начиная с: template-haskell-2.22.1.0 |
Определён в GHC.Internal.TH.Lift | |
| Lift PkgName Исходный код | Начиная с: template-haskell-2.22.1.0 |
Определён в GHC.Internal.TH.Lift | |
| Lift Pragma Исходный код | Начиная с: template-haskell-2.22.1.0 |
Определён в GHC.Internal.TH.Lift | |
| Lift Range Исходный код | Начиная с: template-haskell-2.22.1.0 |
Определён в GHC.Internal.TH.Lift | |
| Lift Role Исходный код | Начиная с: template-haskell-2.22.1.0 |
Определён в GHC.Internal.TH.Lift | |
| Lift RuleBndr Исходный код | Начиная с: template-haskell-2.22.1.0 |
Определён в GHC.Internal.TH.Lift | |
| Lift RuleMatch Исходный код | Начиная с: template-haskell-2.22.1.0 |
Определён в GHC.Internal.TH.Lift | |
| Lift Safety Исходный код | Начиная с: template-haskell-2.22.1.0 |
Определён в GHC.Internal.TH.Lift | |
| Lift SourceStrictness Исходный код | Начиная с: template-haskell-2.22.1.0 |
Определён в GHC.Internal.TH.Lift Методыlift :: Quote m => SourceStrictness -> m Exp Исходный код liftTyped :: forall (m :: Type -> Type). Quote m => SourceStrictness -> Code m SourceStrictness Исходный код | |
| Lift SourceUnpackedness Исходный код | Начиная с: template-haskell-2.22.1.0 |
Определено в GHC.Internal.TH.Lift Методыlift :: Quote m => SourceUnpackedness -> m Exp Источник liftTyped :: forall (m :: Type -> Type). Quote m => SourceUnpackedness -> Code m SourceUnpackedness Источник | |
| Lift Specificity Источник | Начиная с: template-haskell-2.22.1.0 |
Определено в GHC.Internal.TH.Lift Методыlift :: Quote m => Specificity -> m Exp Источник liftTyped :: forall (m :: Type -> Type). Quote m => Specificity -> Code m Specificity Источник | |
| Lift Stmt Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift TyLit Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift TySynEqn Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift Type Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift TypeFamilyHead Источник | Начиная с: template-haskell-2.22.1.0 |
Определено в GHC.Internal.TH.Lift Методыlift :: Quote m => TypeFamilyHead -> m Exp Источник liftTyped :: forall (m :: Type -> Type). Quote m => TypeFamilyHead -> Code m TypeFamilyHead Источник | |
| Lift Word16 Источник | |
| Lift Word32 Источник | |
| Lift Word64 Источник | |
| Lift Word8 Источник | |
| Lift Integer Источник | |
| Lift Natural Источник | |
| Lift () Источник | |
| Lift Bool Источник | |
| Lift Char Источник | |
| Lift Double Источник | |
| Lift Float Источник | |
| Lift Int Источник | |
| Lift Word Источник | |
| Lift Char# Источник | Начиная с: template-haskell-2.16.0.0 |
| Lift Word# Источник | Начиная с: template-haskell-2.16.0.0 |
| Lift (# #) Источник | Начиная с: template-haskell-2.16.0.0 |
| Lift a => Lift (NonEmpty a :: Type) Источник | Начиная с: template-haskell-2.15.0.0 |
| Integral a => Lift (Ratio a :: Type) Источник | |
| Lift a => Lift (TyVarBndr a :: Type) Источник | Начиная с: template-haskell-2.22.1.0 |
| Lift a => Lift (Maybe a :: Type) Источник | |
| Lift a => Lift ([a] :: Type) Источник | |
| Lift (Fixed a :: Type) Источник | Начиная с: base-4.21.0.0 |
| (Lift a, Lift b) => Lift (Either a b :: Type) Источник | |
| Lift (TExp a :: Type) Источник | Начиная с: template-haskell-2.22.1.0 |
| (Lift a, Lift b) => Lift ((a, b) :: Type) Источник | |
| (Lift a, Lift b, Lift c) => Lift ((a, b, c) :: Type) Источник | |
| (Lift a, Lift b, Lift c, Lift d) => Lift ((a, b, c, d) :: Type) Источник | |
| (Lift a, Lift b, Lift c, Lift d, Lift e) => Lift ((a, b, c, d, e) :: Type) Источник | |
| (Lift a, Lift b, Lift c, Lift d, Lift e, Lift f) => Lift ((a, b, c, d, e, f) :: Type) Источник | |
| (Lift a, Lift b, Lift c, Lift d, Lift e, Lift f, Lift g) => Lift ((a, b, c, d, e, f, g) :: Type) Источник | |
| Lift a => Lift ((# a #) :: TYPE ('TupleRep '[LiftedRep])) Источник | Начиная с: template-haskell-2.16.0.0 |
| (Lift a, Lift b) => Lift ((# a | b #) :: TYPE ('SumRep '[LiftedRep, LiftedRep])) Источник | Начиная с: template-haskell-2.16.0.0 |
| (Lift a, Lift b) => Lift ((# a, b #) :: TYPE ('TupleRep '[LiftedRep, LiftedRep])) Источник | Начиная с: template-haskell-2.16.0.0 |
| (Lift a, Lift b, Lift c) => Lift ((# a | b | c #) :: TYPE ('SumRep '[LiftedRep, LiftedRep, LiftedRep])) Источник | Начиная с: template-haskell-2.16.0.0 |
| (Lift a, Lift b, Lift c) => Lift ((# a, b, c #) :: TYPE ('TupleRep '[LiftedRep, LiftedRep, LiftedRep])) Источник | Начиная с: template-haskell-2.16.0.0 |
| (Lift a, Lift b, Lift c, Lift d) => Lift ((# a | b | c | d #) :: TYPE ('SumRep '[LiftedRep, LiftedRep, LiftedRep, LiftedRep])) Источник | Начиная с: template-haskell-2.16.0.0 |
| (Lift a, Lift b, Lift c, Lift d) => Lift ((# a, b, c, d #) :: TYPE ('TupleRep '[LiftedRep, LiftedRep, LiftedRep, LiftedRep])) Источник | Начиная с: template-haskell-2.16.0.0 |
| (Lift a, Lift b, Lift c, Lift d, Lift e) => Lift ((# a | b | c | d | e #) :: TYPE ('SumRep '[LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep])) Исходный код | Начиная с: template-haskell-2.16.0.0 |
Определён в GHC.Internal.TH.Lift Методыlift :: Quote m => (# a | b | c | d | e #) -> m Exp Исходный код liftTyped :: forall (m :: Type -> Type). Quote m => (# a | b | c | d | e #) -> Code m (# a | b | c | d | e #) Исходный код | |
| (Lift a, Lift b, Lift c, Lift d, Lift e) => Lift ((# a, b, c, d, e #) :: TYPE ('TupleRep '[LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep])) Исходный код | Начиная с: template-haskell-2.16.0.0 |
Определён в GHC.Internal.TH.Lift Методыlift :: Quote m => (# a, b, c, d, e #) -> m Exp Исходный код liftTyped :: forall (m :: Type -> Type). Quote m => (# a, b, c, d, e #) -> Code m (# a, b, c, d, e #) Исходный код | |
| (Lift a, Lift b, Lift c, Lift d, Lift e, Lift f) => Lift ((# a | b | c | d | e | f #) :: TYPE ('SumRep '[LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep])) Исходный код | Начиная с: template-haskell-2.16.0.0 |
Определён в GHC.Internal.TH.Lift Методыlift :: Quote m => (# a | b | c | d | e | f #) -> m Exp Исходный код liftTyped :: forall (m :: Type -> Type). Quote m => (# a | b | c | d | e | f #) -> Code m (# a | b | c | d | e | f #) Исходный код | |
| (Lift a, Lift b, Lift c, Lift d, Lift e, Lift f) => Lift ((# a, b, c, d, e, f #) :: TYPE ('TupleRep '[LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep])) Исходный код | Начиная с: template-haskell-2.16.0.0 |
Определён в GHC.Internal.TH.Lift Методыlift :: Quote m => (# a, b, c, d, e, f #) -> m Exp Исходный код liftTyped :: forall (m :: Type -> Type). Quote m => (# a, b, c, d, e, f #) -> Code m (# a, b, c, d, e, f #) Исходный код | |
| (Lift a, Lift b, Lift c, Lift d, Lift e, Lift f, Lift g) => Lift ((# a | b | c | d | e | f | g #) :: TYPE ('SumRep '[LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep])) Исходный код | Начиная с: template-haskell-2.16.0.0 |
Определён в GHC.Internal.TH.Lift Методыlift :: Quote m => (# a | b | c | d | e | f | g #) -> m Exp Исходный код liftTyped :: forall (m :: Type -> Type). Quote m => (# a | b | c | d | e | f | g #) -> Code m (# a | b | c | d | e | f | g #) Исходный код | |
| (Lift a, Lift b, Lift c, Lift d, Lift e, Lift f, Lift g) => Lift ((# a, b, c, d, e, f, g #) :: TYPE ('TupleRep '[LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep])) Исходный код | Начиная с: template-haskell-2.16.0.0 |
Определён в GHC.Internal.TH.Lift Методыlift :: Quote m => (# a, b, c, d, e, f, g #) -> m Exp Исходный код liftTyped :: forall (m :: Type -> Type). Quote m => (# a, b, c, d, e, f, g #) -> Code m (# a, b, c, d, e, f, g #) Исходный код | |
dataToCodeQ :: forall (m :: Type -> Type) a. (Quote m, Data a) => (forall b. Data b => b -> Maybe (Code m b)) -> a -> Code m a Исходный код
Типизированный вариант dataToExpQ.
dataToExpQ :: (Quote m, Data a) => (forall b. Data b => b -> Maybe (m Exp)) -> a -> m Exp Исходный код
dataToExpQ преобразует значение в Exp-представление того же значения в стиле SYB. Функция обобщена так, чтобы принимать функцию, переопределяющую типоспецифичные случаи; см. liftData — более распространённый вариант.
dataToPatQ :: (Quote m, Data a) => (forall b. Data b => b -> Maybe (m Pat)) -> a -> m Pat Исходный код
dataToPatQ преобразует значение в Pat-представление того же значения в стиле SYB. Функция принимает функцию для обработки типоспецифичных случаев; в качестве альтернативы передайте const Nothing, чтобы получить поведение по умолчанию.
dataToQa :: (Quote m, Data a) => (Name -> k) -> (Lit -> m q) -> (k -> [m q] -> m q) -> (forall b. Data b => b -> Maybe (m q)) -> a -> m q Исходный код
dataToQa — внутренняя вспомогательная функция для создания обобщённых функций преобразования типов с экземплярами Data в различные представления квазицитирования. Примеры использования см. в исходном коде dataToExpQ и dataToPatQ: mkCon, mkLit и appQ можно переопределить, чтобы учитывать различия в синтаксисе выражений и шаблонов; antiQ позволяет переопределять типоспецифичные случаи. Обычно используется просто const Nothing, что исключает переопределение.
falseName :: Name Исходный код
liftData :: (Quote m, Data a) => a -> m Exp Исходный код
liftData — вариант lift из класса типов Lift, работающий для любого типа с экземпляром Data.
liftDataTyped :: forall (m :: Type -> Type) a. (Quote m, Data a) => a -> Code m a Исходный код
Типизированный вариант liftData.
nonemptyName :: Name Исходный код
nothingName :: Name Исходный код
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.14.1/docs/libraries/template-haskell-2.24.0.0-7769/Language-Haskell-TH-Syntax.html