Copyright | (c) Niklas Broberg 2004-2009 (c) The GHC Team 1997-2000 |
---|---|
License | BSD-style (see the file LICENSE.txt) |
Maintainer | Niklas Broberg, d00nibro@chalmers.se |
Stability | stable |
Portability | portable |
Safe Haskell | Safe |
Language | Haskell98 |
A suite of datatypes describing the (semi-concrete) abstract syntax of Haskell 98 http://www.haskell.org/onlinereport/ plus registered extensions, including:
- multi-parameter type classes with functional dependencies (MultiParamTypeClasses, FunctionalDependencies)
- parameters of type class assertions are unrestricted (FlexibleContexts)
forall
types as universal and existential quantification (RankNTypes, ExistentialQuantification, etc)- pattern guards (PatternGuards)
- implicit parameters (ImplicitParameters)
- generalised algebraic data types (GADTs)
- template haskell (TemplateHaskell)
- empty data type declarations (EmptyDataDecls)
- unboxed tuples (UnboxedTuples)
- regular patterns (RegularPatterns)
- HSP-style XML expressions and patterns (XmlSyntax)
All nodes in the syntax tree are annotated with something of a user-definable data type. When parsing, this annotation will contain information about the source location that the particular node comes from.
- data Module l
- = Module l (Maybe (ModuleHead l)) [ModulePragma l] [ImportDecl l] [Decl l]
- | XmlPage l (ModuleName l) [ModulePragma l] (XName l) [XAttr l] (Maybe (Exp l)) [Exp l]
- | XmlHybrid l (Maybe (ModuleHead l)) [ModulePragma l] [ImportDecl l] [Decl l] (XName l) [XAttr l] (Maybe (Exp l)) [Exp l]
- data ModuleHead l = ModuleHead l (ModuleName l) (Maybe (WarningText l)) (Maybe (ExportSpecList l))
- data WarningText l
- data ExportSpecList l = ExportSpecList l [ExportSpec l]
- data ExportSpec l
- = EVar l (QName l)
- | EAbs l (Namespace l) (QName l)
- | EThingWith l (EWildcard l) (QName l) [CName l]
- | EModuleContents l (ModuleName l)
- data EWildcard l
- = NoWildcard l
- | EWildcard l Int
- data ImportDecl l = ImportDecl {
- importAnn :: l
- importModule :: ModuleName l
- importQualified :: Bool
- importSrc :: Bool
- importSafe :: Bool
- importPkg :: Maybe String
- importAs :: Maybe (ModuleName l)
- importSpecs :: Maybe (ImportSpecList l)
- data ImportSpecList l = ImportSpecList l Bool [ImportSpec l]
- data ImportSpec l
- data Assoc l
- = AssocNone l
- | AssocLeft l
- | AssocRight l
- data Namespace l
- = NoNamespace l
- | TypeNamespace l
- | PatternNamespace l
- data Decl l
- = TypeDecl l (DeclHead l) (Type l)
- | TypeFamDecl l (DeclHead l) (Maybe (ResultSig l)) (Maybe (InjectivityInfo l))
- | ClosedTypeFamDecl l (DeclHead l) (Maybe (ResultSig l)) (Maybe (InjectivityInfo l)) [TypeEqn l]
- | DataDecl l (DataOrNew l) (Maybe (Context l)) (DeclHead l) [QualConDecl l] [Deriving l]
- | GDataDecl l (DataOrNew l) (Maybe (Context l)) (DeclHead l) (Maybe (Kind l)) [GadtDecl l] [Deriving l]
- | DataFamDecl l (Maybe (Context l)) (DeclHead l) (Maybe (ResultSig l))
- | TypeInsDecl l (Type l) (Type l)
- | DataInsDecl l (DataOrNew l) (Type l) [QualConDecl l] [Deriving l]
- | GDataInsDecl l (DataOrNew l) (Type l) (Maybe (Kind l)) [GadtDecl l] [Deriving l]
- | ClassDecl l (Maybe (Context l)) (DeclHead l) [FunDep l] (Maybe [ClassDecl l])
- | InstDecl l (Maybe (Overlap l)) (InstRule l) (Maybe [InstDecl l])
- | DerivDecl l (Maybe (DerivStrategy l)) (Maybe (Overlap l)) (InstRule l)
- | InfixDecl l (Assoc l) (Maybe Int) [Op l]
- | DefaultDecl l [Type l]
- | SpliceDecl l (Exp l)
- | TypeSig l [Name l] (Type l)
- | PatSynSig l [Name l] (Maybe [TyVarBind l]) (Maybe (Context l)) (Maybe (Context l)) (Type l)
- | FunBind l [Match l]
- | PatBind l (Pat l) (Rhs l) (Maybe (Binds l))
- | PatSyn l (Pat l) (Pat l) (PatternSynDirection l)
- | ForImp l (CallConv l) (Maybe (Safety l)) (Maybe String) (Name l) (Type l)
- | ForExp l (CallConv l) (Maybe String) (Name l) (Type l)
- | RulePragmaDecl l [Rule l]
- | DeprPragmaDecl l [([Name l], String)]
- | WarnPragmaDecl l [([Name l], String)]
- | InlineSig l Bool (Maybe (Activation l)) (QName l)
- | InlineConlikeSig l (Maybe (Activation l)) (QName l)
- | SpecSig l (Maybe (Activation l)) (QName l) [Type l]
- | SpecInlineSig l Bool (Maybe (Activation l)) (QName l) [Type l]
- | InstSig l (InstRule l)
- | AnnPragma l (Annotation l)
- | MinimalPragma l (Maybe (BooleanFormula l))
- | RoleAnnotDecl l (QName l) [Role l]
- | CompletePragma l [Name l] (Maybe (QName l))
- data DeclHead l
- data InstRule l
- data InstHead l
- data Binds l
- data IPBind l = IPBind l (IPName l) (Exp l)
- data PatternSynDirection l
- data InjectivityInfo l = InjectivityInfo l (Name l) [Name l]
- data ResultSig l
- data ClassDecl l
- data InstDecl l
- data Deriving l = Deriving l (Maybe (DerivStrategy l)) [InstRule l]
- data DerivStrategy l
- = DerivStock l
- | DerivAnyclass l
- | DerivNewtype l
- data DataOrNew l
- data ConDecl l
- data FieldDecl l = FieldDecl l [Name l] (Type l)
- data QualConDecl l = QualConDecl l (Maybe [TyVarBind l]) (Maybe (Context l)) (ConDecl l)
- data GadtDecl l = GadtDecl l (Name l) (Maybe [FieldDecl l]) (Type l)
- data BangType l
- = BangedTy l
- | LazyTy l
- | NoStrictAnnot l
- data Unpackedness l
- = Unpack l
- | NoUnpack l
- | NoUnpackPragma l
- data Match l
- data Rhs l
- = UnGuardedRhs l (Exp l)
- | GuardedRhss l [GuardedRhs l]
- data GuardedRhs l = GuardedRhs l [Stmt l] (Exp l)
- data Context l
- data FunDep l = FunDep l [Name l] [Name l]
- data Asst l
- data Type l
- = TyForall l (Maybe [TyVarBind l]) (Maybe (Context l)) (Type l)
- | TyFun l (Type l) (Type l)
- | TyTuple l Boxed [Type l]
- | TyUnboxedSum l [Type l]
- | TyList l (Type l)
- | TyParArray l (Type l)
- | TyApp l (Type l) (Type l)
- | TyVar l (Name l)
- | TyCon l (QName l)
- | TyParen l (Type l)
- | TyInfix l (Type l) (MaybePromotedName l) (Type l)
- | TyKind l (Type l) (Kind l)
- | TyPromoted l (Promoted l)
- | TyEquals l (Type l) (Type l)
- | TySplice l (Splice l)
- | TyBang l (BangType l) (Unpackedness l) (Type l)
- | TyWildCard l (Maybe (Name l))
- | TyQuasiQuote l String String
- data Boxed
- data Kind l
- data TyVarBind l
- = KindedVar l (Name l) (Kind l)
- | UnkindedVar l (Name l)
- data Promoted l
- = PromotedInteger l Integer String
- | PromotedString l String String
- | PromotedCon l Bool (QName l)
- | PromotedList l Bool [Type l]
- | PromotedTuple l [Type l]
- | PromotedUnit l
- data TypeEqn l = TypeEqn l (Type l) (Type l)
- data Exp l
- = Var l (QName l)
- | OverloadedLabel l String
- | IPVar l (IPName l)
- | Con l (QName l)
- | Lit l (Literal l)
- | InfixApp l (Exp l) (QOp l) (Exp l)
- | App l (Exp l) (Exp l)
- | NegApp l (Exp l)
- | Lambda l [Pat l] (Exp l)
- | Let l (Binds l) (Exp l)
- | If l (Exp l) (Exp l) (Exp l)
- | MultiIf l [GuardedRhs l]
- | Case l (Exp l) [Alt l]
- | Do l [Stmt l]
- | MDo l [Stmt l]
- | Tuple l Boxed [Exp l]
- | UnboxedSum l Int Int (Exp l)
- | TupleSection l Boxed [Maybe (Exp l)]
- | List l [Exp l]
- | ParArray l [Exp l]
- | Paren l (Exp l)
- | LeftSection l (Exp l) (QOp l)
- | RightSection l (QOp l) (Exp l)
- | RecConstr l (QName l) [FieldUpdate l]
- | RecUpdate l (Exp l) [FieldUpdate l]
- | EnumFrom l (Exp l)
- | EnumFromTo l (Exp l) (Exp l)
- | EnumFromThen l (Exp l) (Exp l)
- | EnumFromThenTo l (Exp l) (Exp l) (Exp l)
- | ParArrayFromTo l (Exp l) (Exp l)
- | ParArrayFromThenTo l (Exp l) (Exp l) (Exp l)
- | ListComp l (Exp l) [QualStmt l]
- | ParComp l (Exp l) [[QualStmt l]]
- | ParArrayComp l (Exp l) [[QualStmt l]]
- | ExpTypeSig l (Exp l) (Type l)
- | VarQuote l (QName l)
- | TypQuote l (QName l)
- | BracketExp l (Bracket l)
- | SpliceExp l (Splice l)
- | QuasiQuote l String String
- | TypeApp l (Type l)
- | XTag l (XName l) [XAttr l] (Maybe (Exp l)) [Exp l]
- | XETag l (XName l) [XAttr l] (Maybe (Exp l))
- | XPcdata l String
- | XExpTag l (Exp l)
- | XChildTag l [Exp l]
- | CorePragma l String (Exp l)
- | SCCPragma l String (Exp l)
- | GenPragma l String (Int, Int) (Int, Int) (Exp l)
- | Proc l (Pat l) (Exp l)
- | LeftArrApp l (Exp l) (Exp l)
- | RightArrApp l (Exp l) (Exp l)
- | LeftArrHighApp l (Exp l) (Exp l)
- | RightArrHighApp l (Exp l) (Exp l)
- | LCase l [Alt l]
- data Stmt l
- data QualStmt l
- data FieldUpdate l
- = FieldUpdate l (QName l) (Exp l)
- | FieldPun l (QName l)
- | FieldWildcard l
- data Alt l = Alt l (Pat l) (Rhs l) (Maybe (Binds l))
- data XAttr l = XAttr l (XName l) (Exp l)
- data Pat l
- = PVar l (Name l)
- | PLit l (Sign l) (Literal l)
- | PNPlusK l (Name l) Integer
- | PInfixApp l (Pat l) (QName l) (Pat l)
- | PApp l (QName l) [Pat l]
- | PTuple l Boxed [Pat l]
- | PUnboxedSum l Int Int (Pat l)
- | PList l [Pat l]
- | PParen l (Pat l)
- | PRec l (QName l) [PatField l]
- | PAsPat l (Name l) (Pat l)
- | PWildCard l
- | PIrrPat l (Pat l)
- | PatTypeSig l (Pat l) (Type l)
- | PViewPat l (Exp l) (Pat l)
- | PRPat l [RPat l]
- | PXTag l (XName l) [PXAttr l] (Maybe (Pat l)) [Pat l]
- | PXETag l (XName l) [PXAttr l] (Maybe (Pat l))
- | PXPcdata l String
- | PXPatTag l (Pat l)
- | PXRPats l [RPat l]
- | PSplice l (Splice l)
- | PQuasiQuote l String String
- | PBangPat l (Pat l)
- data PatField l
- data PXAttr l = PXAttr l (XName l) (Pat l)
- data RPat l
- data RPatOp l
- data Literal l
- data Sign l
- data ModuleName l = ModuleName l String
- data QName l
- = Qual l (ModuleName l) (Name l)
- | UnQual l (Name l)
- | Special l (SpecialCon l)
- data Name l
- data QOp l
- data Op l
- data SpecialCon l
- data CName l
- data IPName l
- data XName l
- data Role l
- = Nominal l
- | Representational l
- | Phantom l
- | RoleWildcard l
- data MaybePromotedName l
- = PromotedName l (QName l)
- | UnpromotedName l (QName l)
- data Bracket l
- = ExpBracket l (Exp l)
- | PatBracket l (Pat l)
- | TypeBracket l (Type l)
- | DeclBracket l [Decl l]
- data Splice l
- = IdSplice l String
- | ParenSplice l (Exp l)
- data Safety l
- = PlayRisky l
- | PlaySafe l Bool
- | PlayInterruptible l
- data CallConv l
- data ModulePragma l
- = LanguagePragma l [Name l]
- | OptionsPragma l (Maybe Tool) String
- | AnnModulePragma l (Annotation l)
- data Tool
- data Overlap l
- = NoOverlap l
- | Overlap l
- | Overlapping l
- | Overlaps l
- | Overlappable l
- | Incoherent l
- data Rule l = Rule l String (Maybe (Activation l)) (Maybe [RuleVar l]) (Exp l) (Exp l)
- data RuleVar l
- = RuleVar l (Name l)
- | TypedRuleVar l (Name l) (Type l)
- data Activation l
- = ActiveFrom l Int
- | ActiveUntil l Int
- data Annotation l
- data BooleanFormula l
- = VarFormula l (Name l)
- | AndFormula l [BooleanFormula l]
- | OrFormula l [BooleanFormula l]
- | ParenFormula l (BooleanFormula l)
- prelude_mod :: l -> ModuleName l
- main_mod :: l -> ModuleName l
- main_name :: l -> Name l
- unit_con_name :: l -> QName l
- tuple_con_name :: l -> Boxed -> Int -> QName l
- list_cons_name :: l -> QName l
- unboxed_singleton_con_name :: l -> QName l
- unit_con :: l -> Exp l
- tuple_con :: l -> Boxed -> Int -> Exp l
- unboxed_singleton_con :: l -> Exp l
- as_name :: l -> Name l
- qualified_name :: l -> Name l
- hiding_name :: l -> Name l
- minus_name :: l -> Name l
- bang_name :: l -> Name l
- dot_name :: l -> Name l
- star_name :: l -> Name l
- export_name :: l -> Name l
- safe_name :: l -> Name l
- unsafe_name :: l -> Name l
- interruptible_name :: l -> Name l
- threadsafe_name :: l -> Name l
- stdcall_name :: l -> Name l
- ccall_name :: l -> Name l
- cplusplus_name :: l -> Name l
- dotnet_name :: l -> Name l
- jvm_name :: l -> Name l
- js_name :: l -> Name l
- javascript_name :: l -> Name l
- capi_name :: l -> Name l
- forall_name :: l -> Name l
- family_name :: l -> Name l
- role_name :: l -> Name l
- hole_name :: l -> QName l
- stock_name :: l -> Name l
- anyclass_name :: l -> Name l
- unit_tycon_name :: l -> QName l
- fun_tycon_name :: l -> QName l
- list_tycon_name :: l -> QName l
- tuple_tycon_name :: l -> Boxed -> Int -> QName l
- unboxed_singleton_tycon_name :: l -> QName l
- unit_tycon :: l -> Type l
- fun_tycon :: l -> Type l
- list_tycon :: l -> Type l
- tuple_tycon :: l -> Boxed -> Int -> Type l
- unboxed_singleton_tycon :: l -> Type l
- class Functor ast => Annotated ast where
- (=~=) :: (Annotated a, Eq (a ())) => a l1 -> a l2 -> Bool
Modules
A complete Haskell source module.
Module l (Maybe (ModuleHead l)) [ModulePragma l] [ImportDecl l] [Decl l] | an ordinary Haskell module |
XmlPage l (ModuleName l) [ModulePragma l] (XName l) [XAttr l] (Maybe (Exp l)) [Exp l] | a module consisting of a single XML document. The ModuleName never appears in the source but is needed for semantic purposes, it will be the same as the file name. |
XmlHybrid l (Maybe (ModuleHead l)) [ModulePragma l] [ImportDecl l] [Decl l] (XName l) [XAttr l] (Maybe (Exp l)) [Exp l] | a hybrid module combining an XML document with an ordinary module |
Functor Module Source # | |
Foldable Module Source # | |
Traversable Module Source # | |
Annotated Module Source # | |
AppFixity Module Source # | |
ExactP Module Source # | |
Eq l => Eq (Module l) Source # | |
Data l => Data (Module l) Source # | |
Ord l => Ord (Module l) Source # | |
Show l => Show (Module l) Source # | |
Generic (Module l) Source # | |
Pretty (Module pos) Source # | |
type Rep (Module l) Source # | |
data ModuleHead l Source #
The head of a module, including the name and export specification.
ModuleHead l (ModuleName l) (Maybe (WarningText l)) (Maybe (ExportSpecList l)) |
Functor ModuleHead Source # | |
Foldable ModuleHead Source # | |
Traversable ModuleHead Source # | |
Annotated ModuleHead Source # | |
ExactP ModuleHead Source # | |
Eq l => Eq (ModuleHead l) Source # | |
Data l => Data (ModuleHead l) Source # | |
Ord l => Ord (ModuleHead l) Source # | |
Show l => Show (ModuleHead l) Source # | |
Generic (ModuleHead l) Source # | |
Pretty (ModuleHead l) Source # | |
type Rep (ModuleHead l) Source # | |
data WarningText l Source #
Warning text to optionally use in the module header of e.g. a deprecated module.
Functor WarningText Source # | |
Foldable WarningText Source # | |
Traversable WarningText Source # | |
Annotated WarningText Source # | |
ExactP WarningText Source # | |
Eq l => Eq (WarningText l) Source # | |
Data l => Data (WarningText l) Source # | |
Ord l => Ord (WarningText l) Source # | |
Show l => Show (WarningText l) Source # | |
Generic (WarningText l) Source # | |
type Rep (WarningText l) Source # | |
data ExportSpecList l Source #
An explicit export specification.
ExportSpecList l [ExportSpec l] |
Functor ExportSpecList Source # | |
Foldable ExportSpecList Source # | |
Traversable ExportSpecList Source # | |
Annotated ExportSpecList Source # | |
ExactP ExportSpecList Source # | |
Eq l => Eq (ExportSpecList l) Source # | |
Data l => Data (ExportSpecList l) Source # | |
Ord l => Ord (ExportSpecList l) Source # | |
Show l => Show (ExportSpecList l) Source # | |
Generic (ExportSpecList l) Source # | |
Pretty (ExportSpecList l) Source # | |
type Rep (ExportSpecList l) Source # | |
data ExportSpec l Source #
An item in a module's export specification.
EVar l (QName l) | variable. |
EAbs l (Namespace l) (QName l) |
|
EThingWith l (EWildcard l) (QName l) [CName l] |
|
EModuleContents l (ModuleName l) |
|
Functor ExportSpec Source # | |
Foldable ExportSpec Source # | |
Traversable ExportSpec Source # | |
Annotated ExportSpec Source # | |
ExactP ExportSpec Source # | |
Eq l => Eq (ExportSpec l) Source # | |
Data l => Data (ExportSpec l) Source # | |
Ord l => Ord (ExportSpec l) Source # | |
Show l => Show (ExportSpec l) Source # | |
Generic (ExportSpec l) Source # | |
Pretty (ExportSpec l) Source # | |
type Rep (ExportSpec l) Source # | |
Indicates the position of the wildcard in an export list
NoWildcard l | |
EWildcard l Int |
Functor EWildcard Source # | |
Foldable EWildcard Source # | |
Traversable EWildcard Source # | |
Annotated EWildcard Source # | |
Eq l => Eq (EWildcard l) Source # | |
Data l => Data (EWildcard l) Source # | |
Ord l => Ord (EWildcard l) Source # | |
Show l => Show (EWildcard l) Source # | |
Generic (EWildcard l) Source # | |
type Rep (EWildcard l) Source # | |
data ImportDecl l Source #
An import declaration.
ImportDecl | |
|
Functor ImportDecl Source # | |
Foldable ImportDecl Source # | |
Traversable ImportDecl Source # | |
Annotated ImportDecl Source # | |
ExactP ImportDecl Source # | |
Eq l => Eq (ImportDecl l) Source # | |
Data l => Data (ImportDecl l) Source # | |
Ord l => Ord (ImportDecl l) Source # | |
Show l => Show (ImportDecl l) Source # | |
Generic (ImportDecl l) Source # | |
Pretty (ImportDecl l) Source # | |
type Rep (ImportDecl l) Source # | |
data ImportSpecList l Source #
An explicit import specification list.
ImportSpecList l Bool [ImportSpec l] |
Functor ImportSpecList Source # | |
Foldable ImportSpecList Source # | |
Traversable ImportSpecList Source # | |
Annotated ImportSpecList Source # | |
ExactP ImportSpecList Source # | |
Eq l => Eq (ImportSpecList l) Source # | |
Data l => Data (ImportSpecList l) Source # | |
Ord l => Ord (ImportSpecList l) Source # | |
Show l => Show (ImportSpecList l) Source # | |
Generic (ImportSpecList l) Source # | |
Pretty (ImportSpecList l) Source # | |
type Rep (ImportSpecList l) Source # | |
data ImportSpec l Source #
An import specification, representing a single explicit item imported (or hidden) from a module.
IVar l (Name l) | variable |
IAbs l (Namespace l) (Name l) |
|
IThingAll l (Name l) |
|
IThingWith l (Name l) [CName l] |
|
Functor ImportSpec Source # | |
Foldable ImportSpec Source # | |
Traversable ImportSpec Source # | |
Annotated ImportSpec Source # | |
ExactP ImportSpec Source # | |
Eq l => Eq (ImportSpec l) Source # | |
Data l => Data (ImportSpec l) Source # | |
Ord l => Ord (ImportSpec l) Source # | |
Show l => Show (ImportSpec l) Source # | |
Generic (ImportSpec l) Source # | |
Pretty (ImportSpec l) Source # | |
type Rep (ImportSpec l) Source # | |
Associativity of an operator.
AssocNone l | non-associative operator (declared with |
AssocLeft l | left-associative operator (declared with |
AssocRight l | right-associative operator (declared with |
Functor Assoc Source # | |
Foldable Assoc Source # | |
Traversable Assoc Source # | |
Annotated Assoc Source # | |
ExactP Assoc Source # | |
Eq l => Eq (Assoc l) Source # | |
Data l => Data (Assoc l) Source # | |
Ord l => Ord (Assoc l) Source # | |
Show l => Show (Assoc l) Source # | |
Generic (Assoc l) Source # | |
Pretty (Assoc l) Source # | |
type Rep (Assoc l) Source # | |
Namespaces for imports/exports.
Functor Namespace Source # | |
Foldable Namespace Source # | |
Traversable Namespace Source # | |
Annotated Namespace Source # | |
ExactP Namespace Source # | |
Eq l => Eq (Namespace l) Source # | |
Data l => Data (Namespace l) Source # | |
Ord l => Ord (Namespace l) Source # | |
Show l => Show (Namespace l) Source # | |
Generic (Namespace l) Source # | |
Pretty (Namespace l) Source # | |
type Rep (Namespace l) Source # | |
Declarations
A top-level declaration.
TypeDecl l (DeclHead l) (Type l) | A type declaration |
TypeFamDecl l (DeclHead l) (Maybe (ResultSig l)) (Maybe (InjectivityInfo l)) | A type family declaration |
ClosedTypeFamDecl l (DeclHead l) (Maybe (ResultSig l)) (Maybe (InjectivityInfo l)) [TypeEqn l] | A closed type family declaration |
DataDecl l (DataOrNew l) (Maybe (Context l)) (DeclHead l) [QualConDecl l] [Deriving l] | A data OR newtype declaration |
GDataDecl l (DataOrNew l) (Maybe (Context l)) (DeclHead l) (Maybe (Kind l)) [GadtDecl l] [Deriving l] | A data OR newtype declaration, GADT style |
DataFamDecl l (Maybe (Context l)) (DeclHead l) (Maybe (ResultSig l)) | A data family declaration |
TypeInsDecl l (Type l) (Type l) | A type family instance declaration |
DataInsDecl l (DataOrNew l) (Type l) [QualConDecl l] [Deriving l] | A data family instance declaration |
GDataInsDecl l (DataOrNew l) (Type l) (Maybe (Kind l)) [GadtDecl l] [Deriving l] | A data family instance declaration, GADT style |
ClassDecl l (Maybe (Context l)) (DeclHead l) [FunDep l] (Maybe [ClassDecl l]) | A declaration of a type class |
InstDecl l (Maybe (Overlap l)) (InstRule l) (Maybe [InstDecl l]) | An declaration of a type class instance |
DerivDecl l (Maybe (DerivStrategy l)) (Maybe (Overlap l)) (InstRule l) | A standalone deriving declaration |
InfixDecl l (Assoc l) (Maybe Int) [Op l] | A declaration of operator fixity |
DefaultDecl l [Type l] | A declaration of default types |
SpliceDecl l (Exp l) | A Template Haskell splicing declaration |
TypeSig l [Name l] (Type l) | A type signature declaration |
PatSynSig l [Name l] (Maybe [TyVarBind l]) (Maybe (Context l)) (Maybe (Context l)) (Type l) | A pattern synonym signature declation |
FunBind l [Match l] | A set of function binding clauses |
PatBind l (Pat l) (Rhs l) (Maybe (Binds l)) | A pattern binding |
PatSyn l (Pat l) (Pat l) (PatternSynDirection l) | A pattern synonym binding |
ForImp l (CallConv l) (Maybe (Safety l)) (Maybe String) (Name l) (Type l) | A foreign import declaration |
ForExp l (CallConv l) (Maybe String) (Name l) (Type l) | A foreign export declaration |
RulePragmaDecl l [Rule l] | A RULES pragma |
DeprPragmaDecl l [([Name l], String)] | A DEPRECATED pragma |
WarnPragmaDecl l [([Name l], String)] | A WARNING pragma |
InlineSig l Bool (Maybe (Activation l)) (QName l) | An INLINE pragma |
InlineConlikeSig l (Maybe (Activation l)) (QName l) | An INLINE CONLIKE pragma |
SpecSig l (Maybe (Activation l)) (QName l) [Type l] | A SPECIALISE pragma |
SpecInlineSig l Bool (Maybe (Activation l)) (QName l) [Type l] | A SPECIALISE INLINE pragma |
InstSig l (InstRule l) | A SPECIALISE instance pragma |
AnnPragma l (Annotation l) | An ANN pragma |
MinimalPragma l (Maybe (BooleanFormula l)) | A MINIMAL pragma |
RoleAnnotDecl l (QName l) [Role l] | A role annotation |
CompletePragma l [Name l] (Maybe (QName l)) | A COMPLETE pragma |
Functor Decl Source # | |
Foldable Decl Source # | |
Traversable Decl Source # | |
Annotated Decl Source # | |
AppFixity Decl Source # | |
ExactP Decl Source # | |
Eq l => Eq (Decl l) Source # | |
Data l => Data (Decl l) Source # | |
Ord l => Ord (Decl l) Source # | |
Show l => Show (Decl l) Source # | |
Generic (Decl l) Source # | |
Pretty (Decl l) Source # | |
type Rep (Decl l) Source # | |
The head of a type or class declaration, which consists of the type or class name applied to some type variables
class C a b
is represented as
DHApp () (DHApp () (DHead () (Ident () "C")) (UnkindedVar () (Ident () "a"))) (UnkindedVar () (Ident () "b"))
(where the annotation type l
is instantiated with ()
)
class (a :< b) c
is represented as
DHApp () (DHParen () (DHApp () (DHInfix () (UnkindedVar () (Ident () "a")) (Symbol () ":<")) (UnkindedVar () (Ident () "b")))) (UnkindedVar () (Ident () "c"))
DHead l (Name l) | type or class name |
DHInfix l (TyVarBind l) (Name l) | infix application of the type/class name to the left operand |
DHParen l (DeclHead l) | parenthesized declaration head |
DHApp l (DeclHead l) (TyVarBind l) | application to one more type variable |
Functor DeclHead Source # | |
Foldable DeclHead Source # | |
Traversable DeclHead Source # | |
Annotated DeclHead Source # | |
ExactP DeclHead Source # | |
Eq l => Eq (DeclHead l) Source # | |
Data l => Data (DeclHead l) Source # | |
Ord l => Ord (DeclHead l) Source # | |
Show l => Show (DeclHead l) Source # | |
Generic (DeclHead l) Source # | |
Pretty (DeclHead l) Source # | |
type Rep (DeclHead l) Source # | |
The instance declaration rule, which is, roughly, the part of the instance declaration before the where
keyword.
Example: instance Ord a => Ord (Maybe a)
is represented as
IRule () Nothing (Just (CxSingle () (ClassA () (UnQual () (Ident () "Ord")) [ TyVar () (Ident () "a") ]))) (IHApp () (IHCon () (UnQual () (Ident () "Ord"))) (TyParen () (TyApp () (TyCon () (UnQual () (Ident () "Maybe"))) (TyVar () (Ident () "a")))))
An optional explicit forall after instance
is supported:
instance forall a . Ord a => Ord (Maybe a) where
becomes
IRule () (Just [ UnkindedVar () (Ident () "a") ]) ...
Functor InstRule Source # | |
Foldable InstRule Source # | |
Traversable InstRule Source # | |
Annotated InstRule Source # | |
ExactP InstRule Source # | |
Eq l => Eq (InstRule l) Source # | |
Data l => Data (InstRule l) Source # | |
Ord l => Ord (InstRule l) Source # | |
Show l => Show (InstRule l) Source # | |
Generic (InstRule l) Source # | |
Pretty (InstRule l) Source # | |
type Rep (InstRule l) Source # | |
The instance head. The split between rule/head allow us to represent
instance (Bounded a => Bounded [a]) where
faithfully.
The structure of InstHead
follows one of DeclHead
.
For example, instance C (Maybe a) Int where
is represented as
IHApp () (IHApp () (IHCon () (UnQual () (Ident () "C"))) (TyParen () (TyApp () (TyCon () (UnQual () (Ident () "Maybe"))) (TyVar () (Ident () "a"))))) (TyCon () (UnQual () (Ident () "Int")))))
IHCon l (QName l) | type or class name |
IHInfix l (Type l) (QName l) | infix application of the type/class name to the left operand |
IHParen l (InstHead l) | parenthesized instance head |
IHApp l (InstHead l) (Type l) | application to one more type |
Functor InstHead Source # | |
Foldable InstHead Source # | |
Traversable InstHead Source # | |
Annotated InstHead Source # | |
ExactP InstHead Source # | |
Eq l => Eq (InstHead l) Source # | |
Data l => Data (InstHead l) Source # | |
Ord l => Ord (InstHead l) Source # | |
Show l => Show (InstHead l) Source # | |
Generic (InstHead l) Source # | |
Pretty (InstHead l) Source # | |
type Rep (InstHead l) Source # | |
A binding group inside a let
or where
clause.
BDecls l [Decl l] | An ordinary binding group |
IPBinds l [IPBind l] | A binding group for implicit parameters |
Functor Binds Source # | |
Foldable Binds Source # | |
Traversable Binds Source # | |
Annotated Binds Source # | |
AppFixity Binds Source # | |
ExactP Binds Source # | |
Eq l => Eq (Binds l) Source # | |
Data l => Data (Binds l) Source # | |
Ord l => Ord (Binds l) Source # | |
Show l => Show (Binds l) Source # | |
Generic (Binds l) Source # | |
type Rep (Binds l) Source # | |
A binding of an implicit parameter.
Functor IPBind Source # | |
Foldable IPBind Source # | |
Traversable IPBind Source # | |
Annotated IPBind Source # | |
AppFixity IPBind Source # | |
ExactP IPBind Source # | |
Eq l => Eq (IPBind l) Source # | |
Data l => Data (IPBind l) Source # | |
Ord l => Ord (IPBind l) Source # | |
Show l => Show (IPBind l) Source # | |
Generic (IPBind l) Source # | |
Pretty (IPBind l) Source # | |
type Rep (IPBind l) Source # | |
data PatternSynDirection l Source #
Unidirectional | A unidirectional pattern synonym with "<-" |
ImplicitBidirectional | A bidirectional pattern synonym with "=" |
ExplicitBidirectional l [Decl l] | A birectional pattern synonym with the construction specified. |
Functor PatternSynDirection Source # | |
Foldable PatternSynDirection Source # | |
Traversable PatternSynDirection Source # | |
AppFixity PatternSynDirection Source # | |
Eq l => Eq (PatternSynDirection l) Source # | |
Data l => Data (PatternSynDirection l) Source # | |
Ord l => Ord (PatternSynDirection l) Source # | |
Show l => Show (PatternSynDirection l) Source # | |
Generic (PatternSynDirection l) Source # | |
type Rep (PatternSynDirection l) Source # | |
data InjectivityInfo l Source #
Injectivity info for injective type families
InjectivityInfo l (Name l) [Name l] |
Functor InjectivityInfo Source # | |
Foldable InjectivityInfo Source # | |
Traversable InjectivityInfo Source # | |
Annotated InjectivityInfo Source # | |
ExactP InjectivityInfo Source # | |
Eq l => Eq (InjectivityInfo l) Source # | |
Data l => Data (InjectivityInfo l) Source # | |
Ord l => Ord (InjectivityInfo l) Source # | |
Show l => Show (InjectivityInfo l) Source # | |
Generic (InjectivityInfo l) Source # | |
Pretty (InjectivityInfo l) Source # | |
type Rep (InjectivityInfo l) Source # | |
Functor ResultSig Source # | |
Foldable ResultSig Source # | |
Traversable ResultSig Source # | |
Annotated ResultSig Source # | |
ExactP ResultSig Source # | |
Eq l => Eq (ResultSig l) Source # | |
Data l => Data (ResultSig l) Source # | |
Ord l => Ord (ResultSig l) Source # | |
Show l => Show (ResultSig l) Source # | |
Generic (ResultSig l) Source # | |
Pretty (ResultSig l) Source # | |
type Rep (ResultSig l) Source # | |
Type classes and instances
Declarations inside a class declaration.
ClsDecl l (Decl l) | ordinary declaration |
ClsDataFam l (Maybe (Context l)) (DeclHead l) (Maybe (ResultSig l)) | declaration of an associated data type |
ClsTyFam l (DeclHead l) (Maybe (ResultSig l)) (Maybe (InjectivityInfo l)) | declaration of an associated type synonym |
ClsTyDef l (TypeEqn l) | default choice for an associated type synonym |
ClsDefSig l (Name l) (Type l) | default signature |
Functor ClassDecl Source # | |
Foldable ClassDecl Source # | |
Traversable ClassDecl Source # | |
Annotated ClassDecl Source # | |
AppFixity ClassDecl Source # | |
ExactP ClassDecl Source # | |
Eq l => Eq (ClassDecl l) Source # | |
Data l => Data (ClassDecl l) Source # | |
Ord l => Ord (ClassDecl l) Source # | |
Show l => Show (ClassDecl l) Source # | |
Generic (ClassDecl l) Source # | |
Pretty (ClassDecl l) Source # | |
type Rep (ClassDecl l) Source # | |
Declarations inside an instance declaration.
InsDecl l (Decl l) | ordinary declaration |
InsType l (Type l) (Type l) | an associated type definition |
InsData l (DataOrNew l) (Type l) [QualConDecl l] [Deriving l] | an associated data type implementation |
InsGData l (DataOrNew l) (Type l) (Maybe (Kind l)) [GadtDecl l] [Deriving l] | an associated data type implemented using GADT style |
Functor InstDecl Source # | |
Foldable InstDecl Source # | |
Traversable InstDecl Source # | |
Annotated InstDecl Source # | |
AppFixity InstDecl Source # | |
ExactP InstDecl Source # | |
Eq l => Eq (InstDecl l) Source # | |
Data l => Data (InstDecl l) Source # | |
Ord l => Ord (InstDecl l) Source # | |
Show l => Show (InstDecl l) Source # | |
Generic (InstDecl l) Source # | |
Pretty (InstDecl l) Source # | |
type Rep (InstDecl l) Source # | |
A deriving clause following a data type declaration.
Deriving l (Maybe (DerivStrategy l)) [InstRule l] |
Functor Deriving Source # | |
Foldable Deriving Source # | |
Traversable Deriving Source # | |
Annotated Deriving Source # | |
ExactP Deriving Source # | |
Eq l => Eq (Deriving l) Source # | |
Data l => Data (Deriving l) Source # | |
Ord l => Ord (Deriving l) Source # | |
Show l => Show (Deriving l) Source # | |
Generic (Deriving l) Source # | |
Pretty (Deriving l) Source # | |
type Rep (Deriving l) Source # | |
data DerivStrategy l Source #
Which technique the user explicitly requested when deriving an instance.
DerivStock l | GHC's "standard" strategy, which is to implement a
custom instance for the data type. This only works for
certain types that GHC knows about (e.g., |
DerivAnyclass l | -XDeriveAnyClass |
DerivNewtype l | -XGeneralizedNewtypeDeriving |
Functor DerivStrategy Source # | |
Foldable DerivStrategy Source # | |
Traversable DerivStrategy Source # | |
Annotated DerivStrategy Source # | |
ExactP DerivStrategy Source # | |
Eq l => Eq (DerivStrategy l) Source # | |
Data l => Data (DerivStrategy l) Source # | |
Ord l => Ord (DerivStrategy l) Source # | |
Show l => Show (DerivStrategy l) Source # | |
Generic (DerivStrategy l) Source # | |
Pretty (DerivStrategy l) Source # | |
type Rep (DerivStrategy l) Source # | |
Data type declarations
A flag stating whether a declaration is a data or newtype declaration.
Functor DataOrNew Source # | |
Foldable DataOrNew Source # | |
Traversable DataOrNew Source # | |
Annotated DataOrNew Source # | |
ExactP DataOrNew Source # | |
Eq l => Eq (DataOrNew l) Source # | |
Data l => Data (DataOrNew l) Source # | |
Ord l => Ord (DataOrNew l) Source # | |
Show l => Show (DataOrNew l) Source # | |
Generic (DataOrNew l) Source # | |
Pretty (DataOrNew l) Source # | |
type Rep (DataOrNew l) Source # | |
Declaration of an ordinary data constructor.
ConDecl l (Name l) [Type l] | ordinary data constructor |
InfixConDecl l (Type l) (Name l) (Type l) | infix data constructor |
RecDecl l (Name l) [FieldDecl l] | record constructor |
Functor ConDecl Source # | |
Foldable ConDecl Source # | |
Traversable ConDecl Source # | |
Annotated ConDecl Source # | |
ExactP ConDecl Source # | |
Eq l => Eq (ConDecl l) Source # | |
Data l => Data (ConDecl l) Source # | |
Ord l => Ord (ConDecl l) Source # | |
Show l => Show (ConDecl l) Source # | |
Generic (ConDecl l) Source # | |
Pretty (ConDecl l) Source # | |
type Rep (ConDecl l) Source # | |
Declaration of a (list of) named field(s).
Functor FieldDecl Source # | |
Foldable FieldDecl Source # | |
Traversable FieldDecl Source # | |
Annotated FieldDecl Source # | |
ExactP FieldDecl Source # | |
Eq l => Eq (FieldDecl l) Source # | |
Data l => Data (FieldDecl l) Source # | |
Ord l => Ord (FieldDecl l) Source # | |
Show l => Show (FieldDecl l) Source # | |
Generic (FieldDecl l) Source # | |
Pretty (FieldDecl l) Source # | |
type Rep (FieldDecl l) Source # | |
data QualConDecl l Source #
A single constructor declaration within a data type declaration, which may have an existential quantification binding.
Functor QualConDecl Source # | |
Foldable QualConDecl Source # | |
Traversable QualConDecl Source # | |
Annotated QualConDecl Source # | |
ExactP QualConDecl Source # | |
Eq l => Eq (QualConDecl l) Source # | |
Data l => Data (QualConDecl l) Source # | |
Ord l => Ord (QualConDecl l) Source # | |
Show l => Show (QualConDecl l) Source # | |
Generic (QualConDecl l) Source # | |
Pretty (QualConDecl l) Source # | |
type Rep (QualConDecl l) Source # | |
A single constructor declaration in a GADT data type declaration.
If the GADT is declared using the record syntax, e.g.
data Ty where TCon :: { field1 :: Int, field2 :: Bool } -> Ty
then the fields are stored as a list of FieldDecl
s, and the final type
(Ty
in the above example) is stored in the last Type
field.
If the GADT is declared using the ordinary syntax, e.g.
data Ty where TCon :: Int -> Bool -> Ty
then
is Maybe
[FieldDecl
l]Nothing
, and the whole constructor's
type (such as Int -> Bool -> Ty
) is stored in the last Type
field.
Functor GadtDecl Source # | |
Foldable GadtDecl Source # | |
Traversable GadtDecl Source # | |
Annotated GadtDecl Source # | |
ExactP GadtDecl Source # | |
Eq l => Eq (GadtDecl l) Source # | |
Data l => Data (GadtDecl l) Source # | |
Ord l => Ord (GadtDecl l) Source # | |
Show l => Show (GadtDecl l) Source # | |
Generic (GadtDecl l) Source # | |
Pretty (GadtDecl l) Source # | |
type Rep (GadtDecl l) Source # | |
The type of a constructor argument or field, optionally including a strictness annotation.
BangedTy l | strict component, marked with " |
LazyTy l | lazy component, marked with " |
NoStrictAnnot l | No strictness information |
Functor BangType Source # | |
Foldable BangType Source # | |
Traversable BangType Source # | |
Annotated BangType Source # | |
ExactP BangType Source # | |
Eq l => Eq (BangType l) Source # | |
Data l => Data (BangType l) Source # | |
Ord l => Ord (BangType l) Source # | |
Show l => Show (BangType l) Source # | |
Generic (BangType l) Source # | |
Pretty (BangType l) Source # | |
type Rep (BangType l) Source # | |
data Unpackedness l Source #
Unpack l | " |
NoUnpack l | " |
NoUnpackPragma l | No unpack pragma |
Functor Unpackedness Source # | |
Foldable Unpackedness Source # | |
Traversable Unpackedness Source # | |
Annotated Unpackedness Source # | |
ExactP Unpackedness Source # | |
Eq l => Eq (Unpackedness l) Source # | |
Data l => Data (Unpackedness l) Source # | |
Ord l => Ord (Unpackedness l) Source # | |
Show l => Show (Unpackedness l) Source # | |
Generic (Unpackedness l) Source # | |
Pretty (Unpackedness l) Source # | |
type Rep (Unpackedness l) Source # | |
Function bindings
Clauses of a function binding.
Match l (Name l) [Pat l] (Rhs l) (Maybe (Binds l)) | A clause defined with prefix notation, i.e. the function name followed by its argument patterns, the right-hand side and an optional where clause. |
InfixMatch l (Pat l) (Name l) [Pat l] (Rhs l) (Maybe (Binds l)) | A clause defined with infix notation, i.e. first its first argument pattern, then the function name, then its following argument(s), the right-hand side and an optional where clause. Note that there can be more than two arguments to a function declared infix, hence the list of pattern arguments. |
Functor Match Source # | |
Foldable Match Source # | |
Traversable Match Source # | |
Annotated Match Source # | |
AppFixity Match Source # | |
ExactP Match Source # | |
Eq l => Eq (Match l) Source # | |
Data l => Data (Match l) Source # | |
Ord l => Ord (Match l) Source # | |
Show l => Show (Match l) Source # | |
Generic (Match l) Source # | |
Pretty (Match l) Source # | |
type Rep (Match l) Source # | |
The right hand side of a function binding, pattern binding, or a case alternative.
UnGuardedRhs l (Exp l) | unguarded right hand side (exp) |
GuardedRhss l [GuardedRhs l] | guarded right hand side (gdrhs) |
Functor Rhs Source # | |
Foldable Rhs Source # | |
Traversable Rhs Source # | |
Annotated Rhs Source # | |
AppFixity Rhs Source # | |
ExactP Rhs Source # | |
Eq l => Eq (Rhs l) Source # | |
Data l => Data (Rhs l) Source # | |
Ord l => Ord (Rhs l) Source # | |
Show l => Show (Rhs l) Source # | |
Generic (Rhs l) Source # | |
Pretty (Rhs l) Source # | |
type Rep (Rhs l) Source # | |
data GuardedRhs l Source #
A guarded right hand side |
stmts =
exp, or |
stmts ->
exp
for case alternatives.
The guard is a series of statements when using pattern guards,
otherwise it will be a single qualifier expression.
GuardedRhs l [Stmt l] (Exp l) |
Functor GuardedRhs Source # | |
Foldable GuardedRhs Source # | |
Traversable GuardedRhs Source # | |
Annotated GuardedRhs Source # | |
AppFixity GuardedRhs Source # | |
ExactP GuardedRhs Source # | |
Eq l => Eq (GuardedRhs l) Source # | |
Data l => Data (GuardedRhs l) Source # | |
Ord l => Ord (GuardedRhs l) Source # | |
Show l => Show (GuardedRhs l) Source # | |
Generic (GuardedRhs l) Source # | |
Pretty (GuardedRhs l) Source # | |
type Rep (GuardedRhs l) Source # | |
Class Assertions and Contexts
A context is a set of assertions
Functor Context Source # | |
Foldable Context Source # | |
Traversable Context Source # | |
Annotated Context Source # | |
ExactP Context Source # | |
Eq l => Eq (Context l) Source # | |
Data l => Data (Context l) Source # | |
Ord l => Ord (Context l) Source # | |
Show l => Show (Context l) Source # | |
Generic (Context l) Source # | |
Pretty (Context l) Source # | |
type Rep (Context l) Source # | |
A functional dependency, given on the form l1 l2 ... ln -> r2 r3 .. rn
Functor FunDep Source # | |
Foldable FunDep Source # | |
Traversable FunDep Source # | |
Annotated FunDep Source # | |
ExactP FunDep Source # | |
Eq l => Eq (FunDep l) Source # | |
Data l => Data (FunDep l) Source # | |
Ord l => Ord (FunDep l) Source # | |
Show l => Show (FunDep l) Source # | |
Generic (FunDep l) Source # | |
Pretty (FunDep l) Source # | |
type Rep (FunDep l) Source # | |
Class assertions. In Haskell 98, the argument would be a tyvar, but this definition allows multiple parameters, and allows them to be types. Also extended with support for implicit parameters and equality constraints.
ClassA l (QName l) [Type l] | ordinary class assertion |
AppA l (Name l) [Type l] | constraint kind assertion, |
InfixA l (Type l) (QName l) (Type l) | class assertion where the class name is given infix |
IParam l (IPName l) (Type l) | implicit parameter assertion |
EqualP l (Type l) (Type l) | type equality constraint |
ParenA l (Asst l) | parenthesised class assertion |
WildCardA l (Maybe (Name l)) | Context Wildcard |
Functor Asst Source # | |
Foldable Asst Source # | |
Traversable Asst Source # | |
Annotated Asst Source # | |
ExactP Asst Source # | |
Eq l => Eq (Asst l) Source # | |
Data l => Data (Asst l) Source # | |
Ord l => Ord (Asst l) Source # | |
Show l => Show (Asst l) Source # | |
Generic (Asst l) Source # | |
Pretty (Asst l) Source # | |
type Rep (Asst l) Source # | |
Types
A type qualified with a context. An unqualified type has an empty context.
TyForall l (Maybe [TyVarBind l]) (Maybe (Context l)) (Type l) | qualified type |
TyFun l (Type l) (Type l) | function type |
TyTuple l Boxed [Type l] | tuple type, possibly boxed |
TyUnboxedSum l [Type l] | unboxed tuple type |
TyList l (Type l) | list syntax, e.g. [a], as opposed to [] a |
TyParArray l (Type l) | parallel array syntax, e.g. [:a:] |
TyApp l (Type l) (Type l) | application of a type constructor |
TyVar l (Name l) | type variable |
TyCon l (QName l) | named type or type constructor |
TyParen l (Type l) | type surrounded by parentheses |
TyInfix l (Type l) (MaybePromotedName l) (Type l) | infix type constructor |
TyKind l (Type l) (Kind l) | type with explicit kind signature |
TyPromoted l (Promoted l) |
|
TyEquals l (Type l) (Type l) | type equality predicate enabled by ConstraintKinds |
TySplice l (Splice l) | template haskell splice type |
TyBang l (BangType l) (Unpackedness l) (Type l) | Strict type marked with " |
TyWildCard l (Maybe (Name l)) | Either an anonymous of named type wildcard |
TyQuasiQuote l String String | [$name| string |] |
Functor Type Source # | |
Foldable Type Source # | |
Traversable Type Source # | |
Annotated Type Source # | |
ExactP Type Source # | |
Eq l => Eq (Type l) Source # | |
Data l => Data (Type l) Source # | |
Ord l => Ord (Type l) Source # | |
Show l => Show (Type l) Source # | |
Generic (Type l) Source # | |
Pretty (Type l) Source # | |
type Rep (Type l) Source # | |
Flag denoting whether a tuple is boxed or unboxed.
An explicit kind annotation.
KindStar l |
|
KindFn l (Kind l) (Kind l) |
|
KindParen l (Kind l) | a parenthesised kind |
KindVar l (QName l) |
|
KindApp l (Kind l) (Kind l) | k1 k2 |
KindTuple l [Kind l] |
|
KindList l (Kind l) |
|
Functor Kind Source # | |
Foldable Kind Source # | |
Traversable Kind Source # | |
Annotated Kind Source # | |
ExactP Kind Source # | |
Eq l => Eq (Kind l) Source # | |
Data l => Data (Kind l) Source # | |
Ord l => Ord (Kind l) Source # | |
Show l => Show (Kind l) Source # | |
Generic (Kind l) Source # | |
Pretty (Kind l) Source # | |
type Rep (Kind l) Source # | |
A type variable declaration, optionally with an explicit kind annotation.
KindedVar l (Name l) (Kind l) | variable binding with kind annotation |
UnkindedVar l (Name l) | ordinary variable binding |
Functor TyVarBind Source # | |
Foldable TyVarBind Source # | |
Traversable TyVarBind Source # | |
Annotated TyVarBind Source # | |
ExactP TyVarBind Source # | |
Eq l => Eq (TyVarBind l) Source # | |
Data l => Data (TyVarBind l) Source # | |
Ord l => Ord (TyVarBind l) Source # | |
Show l => Show (TyVarBind l) Source # | |
Generic (TyVarBind l) Source # | |
Pretty (TyVarBind l) Source # | |
type Rep (TyVarBind l) Source # | |
Bools here are True if there was a leading quote which may be
left out. For example '[k1,k2]
means the same thing as [k1,k2]
.
PromotedInteger l Integer String | parsed value and raw string |
PromotedString l String String | parsed value and raw string |
PromotedCon l Bool (QName l) | |
PromotedList l Bool [Type l] | |
PromotedTuple l [Type l] | |
PromotedUnit l |
Functor Promoted Source # | |
Foldable Promoted Source # | |
Traversable Promoted Source # | |
Annotated Promoted Source # | |
ExactP Promoted Source # | |
Eq l => Eq (Promoted l) Source # | |
Data l => Data (Promoted l) Source # | |
Ord l => Ord (Promoted l) Source # | |
Show l => Show (Promoted l) Source # | |
Generic (Promoted l) Source # | |
Pretty (Promoted l) Source # | |
type Rep (Promoted l) Source # | |
A type equation as found in closed type families.
Functor TypeEqn Source # | |
Foldable TypeEqn Source # | |
Traversable TypeEqn Source # | |
Annotated TypeEqn Source # | |
ExactP TypeEqn Source # | |
Eq l => Eq (TypeEqn l) Source # | |
Data l => Data (TypeEqn l) Source # | |
Ord l => Ord (TypeEqn l) Source # | |
Show l => Show (TypeEqn l) Source # | |
Generic (TypeEqn l) Source # | |
Pretty (TypeEqn l) Source # | |
type Rep (TypeEqn l) Source # | |
Expressions
Haskell expressions.
Var l (QName l) | variable |
OverloadedLabel l String | Overloaded label #foo |
IPVar l (IPName l) | implicit parameter variable |
Con l (QName l) | data constructor |
Lit l (Literal l) | literal constant |
InfixApp l (Exp l) (QOp l) (Exp l) | infix application |
App l (Exp l) (Exp l) | ordinary application |
NegApp l (Exp l) | negation expression |
Lambda l [Pat l] (Exp l) | lambda expression |
Let l (Binds l) (Exp l) | local declarations with |
If l (Exp l) (Exp l) (Exp l) |
|
MultiIf l [GuardedRhs l] |
|
Case l (Exp l) [Alt l] |
|
Do l [Stmt l] |
|
MDo l [Stmt l] |
|
Tuple l Boxed [Exp l] | tuple expression |
UnboxedSum l Int Int (Exp l) | unboxed sum |
TupleSection l Boxed [Maybe (Exp l)] | tuple section expression, e.g. |
List l [Exp l] | list expression |
ParArray l [Exp l] | parallel array expression |
Paren l (Exp l) | parenthesised expression |
LeftSection l (Exp l) (QOp l) | left section |
RightSection l (QOp l) (Exp l) | right section |
RecConstr l (QName l) [FieldUpdate l] | record construction expression |
RecUpdate l (Exp l) [FieldUpdate l] | record update expression |
EnumFrom l (Exp l) | unbounded arithmetic sequence,
incrementing by 1: |
EnumFromTo l (Exp l) (Exp l) | bounded arithmetic sequence,
incrementing by 1 |
EnumFromThen l (Exp l) (Exp l) | unbounded arithmetic sequence,
with first two elements given |
EnumFromThenTo l (Exp l) (Exp l) (Exp l) | bounded arithmetic sequence,
with first two elements given |
ParArrayFromTo l (Exp l) (Exp l) | Parallel array bounded arithmetic sequence,
incrementing by 1 |
ParArrayFromThenTo l (Exp l) (Exp l) (Exp l) | bounded arithmetic sequence,
with first two elements given |
ListComp l (Exp l) [QualStmt l] | ordinary list comprehension |
ParComp l (Exp l) [[QualStmt l]] | parallel list comprehension |
ParArrayComp l (Exp l) [[QualStmt l]] | parallel array comprehension |
ExpTypeSig l (Exp l) (Type l) | expression with explicit type signature |
VarQuote l (QName l) |
|
TypQuote l (QName l) |
|
BracketExp l (Bracket l) | template haskell bracket expression |
SpliceExp l (Splice l) | template haskell splice expression |
QuasiQuote l String String | quasi-quotaion: |
TypeApp l (Type l) | Visible type application |
XTag l (XName l) [XAttr l] (Maybe (Exp l)) [Exp l] | xml element, with attributes and children |
XETag l (XName l) [XAttr l] (Maybe (Exp l)) | empty xml element, with attributes |
XPcdata l String | PCDATA child element |
XExpTag l (Exp l) | escaped haskell expression inside xml |
XChildTag l [Exp l] | children of an xml element |
CorePragma l String (Exp l) | CORE pragma |
SCCPragma l String (Exp l) | SCC pragma |
GenPragma l String (Int, Int) (Int, Int) (Exp l) | GENERATED pragma |
Proc l (Pat l) (Exp l) | arrows proc: |
LeftArrApp l (Exp l) (Exp l) | arrow application (from left): exp |
RightArrApp l (Exp l) (Exp l) | arrow application (from right): exp |
LeftArrHighApp l (Exp l) (Exp l) | higher-order arrow application (from left): exp |
RightArrHighApp l (Exp l) (Exp l) | higher-order arrow application (from right): exp |
LCase l [Alt l] |
|
Functor Exp Source # | |
Foldable Exp Source # | |
Traversable Exp Source # | |
Annotated Exp Source # | |
AppFixity Exp Source # | |
ExactP Exp Source # | |
Eq l => Eq (Exp l) Source # | |
Data l => Data (Exp l) Source # | |
Ord l => Ord (Exp l) Source # | |
Show l => Show (Exp l) Source # | |
Generic (Exp l) Source # | |
Pretty (Exp l) Source # | |
type Rep (Exp l) Source # | |
A statement, representing both a stmt in a do
-expression,
an ordinary qual in a list comprehension, as well as a stmt
in a pattern guard.
Generator l (Pat l) (Exp l) | a generator: pat |
Qualifier l (Exp l) | an exp by itself: in a |
LetStmt l (Binds l) | local bindings |
RecStmt l [Stmt l] | a recursive binding group for arrows |
Functor Stmt Source # | |
Foldable Stmt Source # | |
Traversable Stmt Source # | |
Annotated Stmt Source # | |
AppFixity Stmt Source # | |
ExactP Stmt Source # | |
Eq l => Eq (Stmt l) Source # | |
Data l => Data (Stmt l) Source # | |
Ord l => Ord (Stmt l) Source # | |
Show l => Show (Stmt l) Source # | |
Generic (Stmt l) Source # | |
Pretty (Stmt l) Source # | |
type Rep (Stmt l) Source # | |
A general transqual in a list comprehension, which could potentially be a transform of the kind enabled by TransformListComp.
QualStmt l (Stmt l) | an ordinary statement |
ThenTrans l (Exp l) |
|
ThenBy l (Exp l) (Exp l) |
|
GroupBy l (Exp l) |
|
GroupUsing l (Exp l) |
|
GroupByUsing l (Exp l) (Exp l) |
|
Functor QualStmt Source # | |
Foldable QualStmt Source # | |
Traversable QualStmt Source # | |
Annotated QualStmt Source # | |
AppFixity QualStmt Source # | |
ExactP QualStmt Source # | |
Eq l => Eq (QualStmt l) Source # | |
Data l => Data (QualStmt l) Source # | |
Ord l => Ord (QualStmt l) Source # | |
Show l => Show (QualStmt l) Source # | |
Generic (QualStmt l) Source # | |
Pretty (QualStmt l) Source # | |
type Rep (QualStmt l) Source # | |
data FieldUpdate l Source #
An fbind in a labeled construction or update expression.
FieldUpdate l (QName l) (Exp l) | ordinary label-expresion pair |
FieldPun l (QName l) | record field pun |
FieldWildcard l | record field wildcard |
Functor FieldUpdate Source # | |
Foldable FieldUpdate Source # | |
Traversable FieldUpdate Source # | |
Annotated FieldUpdate Source # | |
AppFixity FieldUpdate Source # | |
ExactP FieldUpdate Source # | |
Eq l => Eq (FieldUpdate l) Source # | |
Data l => Data (FieldUpdate l) Source # | |
Ord l => Ord (FieldUpdate l) Source # | |
Show l => Show (FieldUpdate l) Source # | |
Generic (FieldUpdate l) Source # | |
Pretty (FieldUpdate l) Source # | |
type Rep (FieldUpdate l) Source # | |
An alt alternative in a case
expression.
Functor Alt Source # | |
Foldable Alt Source # | |
Traversable Alt Source # | |
Annotated Alt Source # | |
AppFixity Alt Source # | |
ExactP Alt Source # | |
Eq l => Eq (Alt l) Source # | |
Data l => Data (Alt l) Source # | |
Ord l => Ord (Alt l) Source # | |
Show l => Show (Alt l) Source # | |
Generic (Alt l) Source # | |
Pretty (Alt l) Source # | |
type Rep (Alt l) Source # | |
An xml attribute, which is a name-expression pair.
Functor XAttr Source # | |
Foldable XAttr Source # | |
Traversable XAttr Source # | |
Annotated XAttr Source # | |
AppFixity XAttr Source # | |
ExactP XAttr Source # | |
Eq l => Eq (XAttr l) Source # | |
Data l => Data (XAttr l) Source # | |
Ord l => Ord (XAttr l) Source # | |
Show l => Show (XAttr l) Source # | |
Generic (XAttr l) Source # | |
Pretty (XAttr l) Source # | |
type Rep (XAttr l) Source # | |
Patterns
A pattern, to be matched against a value.
PVar l (Name l) | variable |
PLit l (Sign l) (Literal l) | literal constant |
PNPlusK l (Name l) Integer | n+k pattern |
PInfixApp l (Pat l) (QName l) (Pat l) | pattern with an infix data constructor |
PApp l (QName l) [Pat l] | data constructor and argument patterns |
PTuple l Boxed [Pat l] | tuple pattern |
PUnboxedSum l Int Int (Pat l) | unboxed sum |
PList l [Pat l] | list pattern |
PParen l (Pat l) | parenthesized pattern |
PRec l (QName l) [PatField l] | labelled pattern, record style |
PAsPat l (Name l) (Pat l) |
|
PWildCard l | wildcard pattern: |
PIrrPat l (Pat l) | irrefutable pattern: |
PatTypeSig l (Pat l) (Type l) | pattern with type signature |
PViewPat l (Exp l) (Pat l) | view patterns of the form |
PRPat l [RPat l] | regular list pattern |
PXTag l (XName l) [PXAttr l] (Maybe (Pat l)) [Pat l] | XML element pattern |
PXETag l (XName l) [PXAttr l] (Maybe (Pat l)) | XML singleton element pattern |
PXPcdata l String | XML PCDATA pattern |
PXPatTag l (Pat l) | XML embedded pattern |
PXRPats l [RPat l] | XML regular list pattern |
PSplice l (Splice l) | template haskell splice pattern |
PQuasiQuote l String String | quasi quote pattern: |
PBangPat l (Pat l) | strict (bang) pattern: |
Functor Pat Source # | |
Foldable Pat Source # | |
Traversable Pat Source # | |
Annotated Pat Source # | |
AppFixity Pat Source # | |
ExactP Pat Source # | |
Eq l => Eq (Pat l) Source # | |
Data l => Data (Pat l) Source # | |
Ord l => Ord (Pat l) Source # | |
Show l => Show (Pat l) Source # | |
Generic (Pat l) Source # | |
Pretty (Pat l) Source # | |
type Rep (Pat l) Source # | |
An fpat in a labeled record pattern.
PFieldPat l (QName l) (Pat l) | ordinary label-pattern pair |
PFieldPun l (QName l) | record field pun |
PFieldWildcard l | record field wildcard |
Functor PatField Source # | |
Foldable PatField Source # | |
Traversable PatField Source # | |
Annotated PatField Source # | |
AppFixity PatField Source # | |
ExactP PatField Source # | |
Eq l => Eq (PatField l) Source # | |
Data l => Data (PatField l) Source # | |
Ord l => Ord (PatField l) Source # | |
Show l => Show (PatField l) Source # | |
Generic (PatField l) Source # | |
Pretty (PatField l) Source # | |
type Rep (PatField l) Source # | |
An XML attribute in a pattern.
Functor PXAttr Source # | |
Foldable PXAttr Source # | |
Traversable PXAttr Source # | |
Annotated PXAttr Source # | |
AppFixity PXAttr Source # | |
ExactP PXAttr Source # | |
Eq l => Eq (PXAttr l) Source # | |
Data l => Data (PXAttr l) Source # | |
Ord l => Ord (PXAttr l) Source # | |
Show l => Show (PXAttr l) Source # | |
Generic (PXAttr l) Source # | |
Pretty (PXAttr l) Source # | |
type Rep (PXAttr l) Source # | |
An entity in a regular pattern.
RPOp l (RPat l) (RPatOp l) | operator pattern, e.g. pat* |
RPEither l (RPat l) (RPat l) | choice pattern, e.g. (1 | 2) |
RPSeq l [RPat l] | sequence pattern, e.g. (| 1, 2, 3 |) |
RPGuard l (Pat l) [Stmt l] | guarded pattern, e.g. (| p | p < 3 |) |
RPCAs l (Name l) (RPat l) | non-linear variable binding, e.g. (foo@:(1 | 2))* |
RPAs l (Name l) (RPat l) | linear variable binding, e.g. foo@(1 | 2) |
RPParen l (RPat l) | parenthesised pattern, e.g. (2*) |
RPPat l (Pat l) | an ordinary pattern |
Functor RPat Source # | |
Foldable RPat Source # | |
Traversable RPat Source # | |
Annotated RPat Source # | |
AppFixity RPat Source # | |
ExactP RPat Source # | |
Eq l => Eq (RPat l) Source # | |
Data l => Data (RPat l) Source # | |
Ord l => Ord (RPat l) Source # | |
Show l => Show (RPat l) Source # | |
Generic (RPat l) Source # | |
Pretty (RPat l) Source # | |
type Rep (RPat l) Source # | |
A regular pattern operator.
RPStar l |
|
RPStarG l |
|
RPPlus l |
|
RPPlusG l |
|
RPOpt l |
|
RPOptG l |
|
Functor RPatOp Source # | |
Foldable RPatOp Source # | |
Traversable RPatOp Source # | |
Annotated RPatOp Source # | |
ExactP RPatOp Source # | |
Eq l => Eq (RPatOp l) Source # | |
Data l => Data (RPatOp l) Source # | |
Ord l => Ord (RPatOp l) Source # | |
Show l => Show (RPatOp l) Source # | |
Generic (RPatOp l) Source # | |
Pretty (RPatOp l) Source # | |
type Rep (RPatOp l) Source # | |
Literals
literal
Values of this type hold the abstract value of the literal, along with the
precise string representation used. For example, 10
, 0o12
and 0xa
have the same value representation, but each carry a different string representation.
Char l Char String | character literal |
String l String String | string literal |
Int l Integer String | integer literal |
Frac l Rational String | floating point literal |
PrimInt l Integer String | unboxed integer literal |
PrimWord l Integer String | unboxed word literal |
PrimFloat l Rational String | unboxed float literal |
PrimDouble l Rational String | unboxed double literal |
PrimChar l Char String | unboxed character literal |
PrimString l String String | unboxed string literal |
Functor Literal Source # | |
Foldable Literal Source # | |
Traversable Literal Source # | |
Annotated Literal Source # | |
ExactP Literal Source # | |
Eq l => Eq (Literal l) Source # | |
Data l => Data (Literal l) Source # | |
Ord l => Ord (Literal l) Source # | |
Show l => Show (Literal l) Source # | |
Generic (Literal l) Source # | |
Pretty (Literal l) Source # | |
type Rep (Literal l) Source # | |
An indication whether a literal pattern has been negated or not.
Variables, Constructors and Operators
data ModuleName l Source #
The name of a Haskell module.
Functor ModuleName Source # | |
Foldable ModuleName Source # | |
Traversable ModuleName Source # | |
Annotated ModuleName Source # | |
ExactP ModuleName Source # | |
Eq l => Eq (ModuleName l) Source # | |
Data l => Data (ModuleName l) Source # | |
Ord l => Ord (ModuleName l) Source # | |
Show l => Show (ModuleName l) Source # | |
Generic (ModuleName l) Source # | |
Pretty (ModuleName l) Source # | |
type Rep (ModuleName l) Source # | |
This type is used to represent qualified variables, and also qualified constructors.
Qual l (ModuleName l) (Name l) | name qualified with a module name |
UnQual l (Name l) | unqualified local name |
Special l (SpecialCon l) | built-in constructor with special syntax |
Functor QName Source # | |
Foldable QName Source # | |
Traversable QName Source # | |
Annotated QName Source # | |
ExactP QName Source # | |
Eq l => Eq (QName l) Source # | |
Data l => Data (QName l) Source # | |
Ord l => Ord (QName l) Source # | |
Show l => Show (QName l) Source # | |
Generic (QName l) Source # | |
Pretty (QName l) Source # | |
type Rep (QName l) Source # | |
This type is used to represent variables, and also constructors.
Functor Name Source # | |
Foldable Name Source # | |
Traversable Name Source # | |
Annotated Name Source # | |
ExactP Name Source # | |
Eq l => Eq (Name l) Source # | |
Data l => Data (Name l) Source # | |
Ord l => Ord (Name l) Source # | |
Show l => Show (Name l) Source # | |
Generic (Name l) Source # | |
Pretty (Name l) Source # | |
type Rep (Name l) Source # | |
Possibly qualified infix operators (qop), appearing in expressions.
Functor QOp Source # | |
Foldable QOp Source # | |
Traversable QOp Source # | |
Annotated QOp Source # | |
ExactP QOp Source # | |
Eq l => Eq (QOp l) Source # | |
Data l => Data (QOp l) Source # | |
Ord l => Ord (QOp l) Source # | |
Show l => Show (QOp l) Source # | |
Generic (QOp l) Source # | |
Pretty (QOp l) Source # | |
type Rep (QOp l) Source # | |
Operators appearing in infix
declarations are never qualified.
data SpecialCon l Source #
Constructors with special syntax. These names are never qualified, and always refer to builtin type or data constructors.
UnitCon l | unit type and data constructor |
ListCon l | list type constructor |
FunCon l | function type constructor |
TupleCon l Boxed Int | n-ary tuple type and data
constructors |
Cons l | list data constructor |
UnboxedSingleCon l | unboxed singleton tuple constructor |
ExprHole l | An expression hole _ |
Functor SpecialCon Source # | |
Foldable SpecialCon Source # | |
Traversable SpecialCon Source # | |
Annotated SpecialCon Source # | |
ExactP SpecialCon Source # | |
Eq l => Eq (SpecialCon l) Source # | |
Data l => Data (SpecialCon l) Source # | |
Ord l => Ord (SpecialCon l) Source # | |
Show l => Show (SpecialCon l) Source # | |
Generic (SpecialCon l) Source # | |
Pretty (SpecialCon l) Source # | |
type Rep (SpecialCon l) Source # | |
A name (cname) of a component of a class or data type in an import
or export specification.
Functor CName Source # | |
Foldable CName Source # | |
Traversable CName Source # | |
Annotated CName Source # | |
ExactP CName Source # | |
Eq l => Eq (CName l) Source # | |
Data l => Data (CName l) Source # | |
Ord l => Ord (CName l) Source # | |
Show l => Show (CName l) Source # | |
Generic (CName l) Source # | |
Pretty (CName l) Source # | |
type Rep (CName l) Source # | |
An implicit parameter name.
Functor IPName Source # | |
Foldable IPName Source # | |
Traversable IPName Source # | |
Annotated IPName Source # | |
ExactP IPName Source # | |
Eq l => Eq (IPName l) Source # | |
Data l => Data (IPName l) Source # | |
Ord l => Ord (IPName l) Source # | |
Show l => Show (IPName l) Source # | |
Generic (IPName l) Source # | |
Pretty (IPName l) Source # | |
type Rep (IPName l) Source # | |
The name of an xml element or attribute, possibly qualified with a namespace.
Functor XName Source # | |
Foldable XName Source # | |
Traversable XName Source # | |
Annotated XName Source # | |
ExactP XName Source # | |
Eq l => Eq (XName l) Source # | |
Data l => Data (XName l) Source # | |
Ord l => Ord (XName l) Source # | |
Show l => Show (XName l) Source # | |
Generic (XName l) Source # | |
Pretty (XName l) Source # | |
type Rep (XName l) Source # | |
Nominal l | |
Representational l | |
Phantom l | |
RoleWildcard l |
Functor Role Source # | |
Foldable Role Source # | |
Traversable Role Source # | |
Annotated Role Source # | |
ExactP Role Source # | |
Eq l => Eq (Role l) Source # | |
Data l => Data (Role l) Source # | |
Ord l => Ord (Role l) Source # | |
Show l => Show (Role l) Source # | |
Generic (Role l) Source # | |
Pretty (Role l) Source # | |
type Rep (Role l) Source # | |
data MaybePromotedName l Source #
PromotedName l (QName l) | |
UnpromotedName l (QName l) |
Functor MaybePromotedName Source # | |
Foldable MaybePromotedName Source # | |
Traversable MaybePromotedName Source # | |
Annotated MaybePromotedName Source # | |
ExactP MaybePromotedName Source # | |
Eq l => Eq (MaybePromotedName l) Source # | |
Data l => Data (MaybePromotedName l) Source # | |
Ord l => Ord (MaybePromotedName l) Source # | |
Show l => Show (MaybePromotedName l) Source # | |
Generic (MaybePromotedName l) Source # | |
Pretty (MaybePromotedName l) Source # | |
type Rep (MaybePromotedName l) Source # | |
Template Haskell
A template haskell bracket expression.
ExpBracket l (Exp l) | expression bracket: |
PatBracket l (Pat l) | pattern bracket: |
TypeBracket l (Type l) | type bracket: |
DeclBracket l [Decl l] | declaration bracket: |
Functor Bracket Source # | |
Foldable Bracket Source # | |
Traversable Bracket Source # | |
Annotated Bracket Source # | |
AppFixity Bracket Source # | |
ExactP Bracket Source # | |
Eq l => Eq (Bracket l) Source # | |
Data l => Data (Bracket l) Source # | |
Ord l => Ord (Bracket l) Source # | |
Show l => Show (Bracket l) Source # | |
Generic (Bracket l) Source # | |
Pretty (Bracket l) Source # | |
type Rep (Bracket l) Source # | |
A template haskell splice expression
IdSplice l String | variable splice: |
ParenSplice l (Exp l) | parenthesised expression splice: |
Functor Splice Source # | |
Foldable Splice Source # | |
Traversable Splice Source # | |
Annotated Splice Source # | |
AppFixity Splice Source # | |
ExactP Splice Source # | |
Eq l => Eq (Splice l) Source # | |
Data l => Data (Splice l) Source # | |
Ord l => Ord (Splice l) Source # | |
Show l => Show (Splice l) Source # | |
Generic (Splice l) Source # | |
Pretty (Splice l) Source # | |
type Rep (Splice l) Source # | |
FFI
The safety of a foreign function call.
Functor Safety Source # | |
Foldable Safety Source # | |
Traversable Safety Source # | |
Annotated Safety Source # | |
ExactP Safety Source # | |
Eq l => Eq (Safety l) Source # | |
Data l => Data (Safety l) Source # | |
Ord l => Ord (Safety l) Source # | |
Show l => Show (Safety l) Source # | |
Generic (Safety l) Source # | |
Pretty (Safety l) Source # | |
type Rep (Safety l) Source # | |
The calling convention of a foreign function call.
Functor CallConv Source # | |
Foldable CallConv Source # | |
Traversable CallConv Source # | |
Annotated CallConv Source # | |
ExactP CallConv Source # | |
Eq l => Eq (CallConv l) Source # | |
Data l => Data (CallConv l) Source # | |
Ord l => Ord (CallConv l) Source # | |
Show l => Show (CallConv l) Source # | |
Generic (CallConv l) Source # | |
Pretty (CallConv l) Source # | |
type Rep (CallConv l) Source # | |
Pragmas
data ModulePragma l Source #
A top level options pragma, preceding the module header.
LanguagePragma l [Name l] | LANGUAGE pragma |
OptionsPragma l (Maybe Tool) String | OPTIONS pragma, possibly qualified with a tool, e.g. OPTIONS_GHC |
AnnModulePragma l (Annotation l) | ANN pragma with module scope |
Functor ModulePragma Source # | |
Foldable ModulePragma Source # | |
Traversable ModulePragma Source # | |
Annotated ModulePragma Source # | |
ExactP ModulePragma Source # | |
Eq l => Eq (ModulePragma l) Source # | |
Data l => Data (ModulePragma l) Source # | |
Ord l => Ord (ModulePragma l) Source # | |
Show l => Show (ModulePragma l) Source # | |
Generic (ModulePragma l) Source # | |
Pretty (ModulePragma l) Source # | |
Parseable (NonGreedy (ListOf (ModulePragma SrcSpanInfo))) Source # | |
type Rep (ModulePragma l) Source # | |
Recognised tools for OPTIONS pragmas.
Recognised overlaps for overlap pragmas.
NoOverlap l | NO_OVERLAP pragma |
Overlap l | OVERLAP pragma |
Overlapping l | |
Overlaps l | |
Overlappable l | |
Incoherent l | INCOHERENT pragma |
Functor Overlap Source # | |
Foldable Overlap Source # | |
Traversable Overlap Source # | |
Annotated Overlap Source # | |
ExactP Overlap Source # | |
Eq l => Eq (Overlap l) Source # | |
Data l => Data (Overlap l) Source # | |
Ord l => Ord (Overlap l) Source # | |
Show l => Show (Overlap l) Source # | |
Generic (Overlap l) Source # | |
Pretty (Overlap l) Source # | |
type Rep (Overlap l) Source # | |
The body of a RULES pragma.
Functor Rule Source # | |
Foldable Rule Source # | |
Traversable Rule Source # | |
Annotated Rule Source # | |
ExactP Rule Source # | |
Eq l => Eq (Rule l) Source # | |
Data l => Data (Rule l) Source # | |
Ord l => Ord (Rule l) Source # | |
Show l => Show (Rule l) Source # | |
Generic (Rule l) Source # | |
Pretty (Rule l) Source # | |
type Rep (Rule l) Source # | |
Variables used in a RULES pragma, optionally annotated with types
RuleVar l (Name l) | |
TypedRuleVar l (Name l) (Type l) |
Functor RuleVar Source # | |
Foldable RuleVar Source # | |
Traversable RuleVar Source # | |
Annotated RuleVar Source # | |
ExactP RuleVar Source # | |
Eq l => Eq (RuleVar l) Source # | |
Data l => Data (RuleVar l) Source # | |
Ord l => Ord (RuleVar l) Source # | |
Show l => Show (RuleVar l) Source # | |
Generic (RuleVar l) Source # | |
Pretty (RuleVar l) Source # | |
type Rep (RuleVar l) Source # | |
data Activation l Source #
Activation clause of a RULES pragma.
ActiveFrom l Int | |
ActiveUntil l Int |
Functor Activation Source # | |
Foldable Activation Source # | |
Traversable Activation Source # | |
Annotated Activation Source # | |
ExactP Activation Source # | |
Eq l => Eq (Activation l) Source # | |
Data l => Data (Activation l) Source # | |
Ord l => Ord (Activation l) Source # | |
Show l => Show (Activation l) Source # | |
Generic (Activation l) Source # | |
Pretty (Activation l) Source # | |
type Rep (Activation l) Source # | |
data Annotation l Source #
An annotation through an ANN pragma.
Ann l (Name l) (Exp l) | An annotation for a declared name. |
TypeAnn l (Name l) (Exp l) | An annotation for a declared type. |
ModuleAnn l (Exp l) | An annotation for the defining module. |
Functor Annotation Source # | |
Foldable Annotation Source # | |
Traversable Annotation Source # | |
Annotated Annotation Source # | |
AppFixity Annotation Source # | |
ExactP Annotation Source # | |
Eq l => Eq (Annotation l) Source # | |
Data l => Data (Annotation l) Source # | |
Ord l => Ord (Annotation l) Source # | |
Show l => Show (Annotation l) Source # | |
Generic (Annotation l) Source # | |
Pretty (Annotation l) Source # | |
type Rep (Annotation l) Source # | |
data BooleanFormula l Source #
A boolean formula for MINIMAL pragmas.
VarFormula l (Name l) | A variable. |
AndFormula l [BooleanFormula l] | And boolean formulas. |
OrFormula l [BooleanFormula l] | Or boolean formulas. |
ParenFormula l (BooleanFormula l) | Parenthesized boolean formulas. |
Functor BooleanFormula Source # | |
Foldable BooleanFormula Source # | |
Traversable BooleanFormula Source # | |
Annotated BooleanFormula Source # | |
ExactP BooleanFormula Source # | |
Eq l => Eq (BooleanFormula l) Source # | |
Data l => Data (BooleanFormula l) Source # | |
Ord l => Ord (BooleanFormula l) Source # | |
Show l => Show (BooleanFormula l) Source # | |
Generic (BooleanFormula l) Source # | |
Pretty (BooleanFormula l) Source # | |
type Rep (BooleanFormula l) Source # | |
Builtin names
Modules
prelude_mod :: l -> ModuleName l Source #
main_mod :: l -> ModuleName l Source #
Main function of a program
Constructors
unit_con_name :: l -> QName l Source #
list_cons_name :: l -> QName l Source #
unboxed_singleton_con_name :: l -> QName l Source #
unboxed_singleton_con :: l -> Exp l Source #
Special identifiers
qualified_name :: l -> Name l Source #
hiding_name :: l -> Name l Source #
minus_name :: l -> Name l Source #
export_name :: l -> Name l Source #
unsafe_name :: l -> Name l Source #
interruptible_name :: l -> Name l Source #
threadsafe_name :: l -> Name l Source #
stdcall_name :: l -> Name l Source #
ccall_name :: l -> Name l Source #
cplusplus_name :: l -> Name l Source #
dotnet_name :: l -> Name l Source #
javascript_name :: l -> Name l Source #
forall_name :: l -> Name l Source #
family_name :: l -> Name l Source #
stock_name :: l -> Name l Source #
anyclass_name :: l -> Name l Source #
Type constructors
unit_tycon_name :: l -> QName l Source #
fun_tycon_name :: l -> QName l Source #
list_tycon_name :: l -> QName l Source #
unboxed_singleton_tycon_name :: l -> QName l Source #
unit_tycon :: l -> Type l Source #
list_tycon :: l -> Type l Source #
unboxed_singleton_tycon :: l -> Type l Source #
Source coordinates
Annotated trees
class Functor ast => Annotated ast where Source #
AST nodes are annotated, and this class allows manipulation of the annotations.
Retrieve the annotation of an AST node.
amap :: (l -> l) -> ast l -> ast l Source #
Change the annotation of an AST node. Note that only the annotation of
the node itself is affected, and not the annotations of any child nodes.
if all nodes in the AST tree are to be affected, use fmap
.