haskell-src-exts-0.4.8: Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printerContentsIndex
Language.Haskell.Exts.Syntax
Portabilityportable
Stabilityexperimental
MaintainerNiklas Broberg, d00nibro@dtek.chalmers.se
Contents
Modules
Declarations
Class Assertions and Contexts
Types
Expressions
Patterns
Literals
Variables, Constructors and Operators
Template Haskell
HaRP
Hsx
FFI
Pragmas
Builtin names
Modules
Main function of a program
Constructors
Special identifiers
Type constructors
Source coordinates
Description

A suite of datatypes describing the abstract syntax of Haskell 98 http://www.haskell.org/onlinereport/ plus some extensions:

  • multi-parameter type classes with functional dependencies
  • parameters of type class assertions are unrestricted
  • forall types as universal and existential quantification
  • pattern guards
  • implicit parameters
  • generalised algebraic data types
  • template haskell
  • empty data type declarations
  • unboxed tuples
  • regular patterns (HaRP)
  • HSP-style XML expressions and patterns (HSP)

Also worth noting is that (n+k) patterns from Haskell 98 are not supported

Synopsis
data Module = Module SrcLoc ModuleName [OptionPragma] (Maybe WarningText) (Maybe [ExportSpec]) [ImportDecl] [Decl]
data ExportSpec
= EVar QName
| EAbs QName
| EThingAll QName
| EThingWith QName [CName]
| EModuleContents ModuleName
data ImportDecl = ImportDecl {
importLoc :: SrcLoc
importModule :: ModuleName
importQualified :: Bool
importSrc :: Bool
importAs :: Maybe ModuleName
importSpecs :: Maybe (Bool, [ImportSpec])
}
data ImportSpec
= IVar Name
| IAbs Name
| IThingAll Name
| IThingWith Name [CName]
data Assoc
= AssocNone
| AssocLeft
| AssocRight
data Decl
= TypeDecl SrcLoc Name [Name] Type
| DataDecl SrcLoc DataOrNew Context Name [Name] [QualConDecl] [Deriving]
| GDataDecl SrcLoc DataOrNew Context Name [Name] (Maybe Kind) [GadtDecl] [Deriving]
| TypeFamDecl SrcLoc Name [Name] (Maybe Kind)
| DataFamDecl SrcLoc Context Name [Name] (Maybe Kind)
| TypeInsDecl SrcLoc Type Type
| DataInsDecl SrcLoc DataOrNew Type [QualConDecl] [Deriving]
| GDataInsDecl SrcLoc DataOrNew Type (Maybe Kind) [GadtDecl] [Deriving]
| InfixDecl SrcLoc Assoc Int [Op]
| ClassDecl SrcLoc Context Name [Name] [FunDep] [ClassDecl]
| InstDecl SrcLoc Context QName [Type] [InstDecl]
| DerivDecl SrcLoc Context QName [Type]
| DefaultDecl SrcLoc [Type]
| SpliceDecl SrcLoc Splice
| TypeSig SrcLoc [Name] Type
| FunBind [Match]
| PatBind SrcLoc Pat (Maybe Type) Rhs Binds
| ForImp SrcLoc CallConv Safety String Name Type
| ForExp SrcLoc CallConv String Name Type
| RulePragmaDecl SrcLoc [Rule]
| DeprPragmaDecl SrcLoc [([Name], String)]
| WarnPragmaDecl SrcLoc [([Name], String)]
| InlineSig SrcLoc Bool Activation QName
| SpecSig SrcLoc QName [Type]
| SpecInlineSig SrcLoc Bool Activation QName [Type]
| InstSig SrcLoc Context QName [Type]
| UnknownDeclPragma SrcLoc String String
data Binds
= BDecls [Decl]
| IPBinds [IPBind]
data IPBind = IPBind SrcLoc IPName Exp
data ClassDecl
= ClsDecl Decl
| ClsDataFam SrcLoc Context Name [Name] (Maybe Kind)
| ClsTyFam SrcLoc Name [Name] (Maybe Kind)
| ClsTyDef SrcLoc Type Type
data InstDecl
= InsDecl Decl
| InsType SrcLoc Type Type
| InsData SrcLoc DataOrNew Type [QualConDecl] [Deriving]
| InsGData SrcLoc DataOrNew Type (Maybe Kind) [GadtDecl] [Deriving]
| InsInline SrcLoc Bool Activation QName
type Deriving = (QName, [QName])
data GadtDecl = GadtDecl SrcLoc Name Type
data ConDecl
= ConDecl Name [BangType]
| RecDecl Name [([Name], BangType)]
data QualConDecl = QualConDecl SrcLoc [TyVarBind] Context ConDecl
data BangType
= BangedTy Type
| UnBangedTy Type
| UnpackedTy Type
data Match = Match SrcLoc Name [Pat] (Maybe Type) Rhs Binds
data Rhs
= UnGuardedRhs Exp
| GuardedRhss [GuardedRhs]
data GuardedRhs = GuardedRhs SrcLoc [Stmt] Exp
data DataOrNew
= DataType
| NewType
type Context = [Asst]
data FunDep = FunDep [Name] [Name]
data Asst
= ClassA QName [Type]
| IParam IPName Type
| EqualP Type Type
data Type
= TyForall (Maybe [TyVarBind]) Context Type
| TyFun Type Type
| TyTuple Boxed [Type]
| TyApp Type Type
| TyVar Name
| TyCon QName
| TyPred Asst
| TyInfix Type QName Type
| TyKind Type Kind
data Boxed
= Boxed
| Unboxed
data Kind
= KindStar
| KindBang
| KindFn Kind Kind
data TyVarBind
= KindedVar Name Kind
| UnkindedVar Name
data Exp
= Var QName
| IPVar IPName
| Con QName
| Lit Literal
| InfixApp Exp QOp Exp
| App Exp Exp
| NegApp Exp
| Lambda SrcLoc [Pat] Exp
| Let Binds Exp
| If Exp Exp Exp
| Case Exp [Alt]
| Do [Stmt]
| MDo [Stmt]
| Tuple [Exp]
| List [Exp]
| Paren Exp
| LeftSection Exp QOp
| RightSection QOp Exp
| RecConstr QName [FieldUpdate]
| RecUpdate Exp [FieldUpdate]
| EnumFrom Exp
| EnumFromTo Exp Exp
| EnumFromThen Exp Exp
| EnumFromThenTo Exp Exp Exp
| ListComp Exp [Stmt]
| ExpTypeSig SrcLoc Exp Type
| VarQuote QName
| TypQuote QName
| BracketExp Bracket
| SpliceExp Splice
| XTag SrcLoc XName [XAttr] (Maybe Exp) [Exp]
| XETag SrcLoc XName [XAttr] (Maybe Exp)
| XPcdata String
| XExpTag Exp
| CorePragma String
| SCCPragma String
| GenPragma String (Int, Int) (Int, Int)
| UnknownExpPragma String String
data Stmt
= Generator SrcLoc Pat Exp
| Qualifier Exp
| LetStmt Binds
data FieldUpdate
= FieldUpdate QName Exp
| FieldPun Name
| FieldWildcard
data Alt = Alt SrcLoc Pat GuardedAlts Binds
data GuardedAlts
= UnGuardedAlt Exp
| GuardedAlts [GuardedAlt]
data GuardedAlt = GuardedAlt SrcLoc [Stmt] Exp
data Pat
= PVar Name
| PLit Literal
| PNeg Pat
| PNPlusK Name Integer
| PInfixApp Pat QName Pat
| PApp QName [Pat]
| PTuple [Pat]
| PList [Pat]
| PParen Pat
| PRec QName [PatField]
| PAsPat Name Pat
| PWildCard
| PIrrPat Pat
| PatTypeSig SrcLoc Pat Type
| PViewPat Exp Pat
| PRPat [RPat]
| PXTag SrcLoc XName [PXAttr] (Maybe Pat) [Pat]
| PXETag SrcLoc XName [PXAttr] (Maybe Pat)
| PXPcdata String
| PXPatTag Pat
| PXRPats [RPat]
data PatField
= PFieldPat QName Pat
| PFieldPun Name
| PFieldWildcard
data Literal
= Char Char
| String String
| Int Integer
| Frac Rational
| PrimInt Integer
| PrimWord Integer
| PrimFloat Rational
| PrimDouble Rational
| PrimChar Char
| PrimString String
newtype ModuleName = ModuleName String
data QName
= Qual ModuleName Name
| UnQual Name
| Special SpecialCon
data Name
= Ident String
| Symbol String
data QOp
= QVarOp QName
| QConOp QName
data Op
= VarOp Name
| ConOp Name
data SpecialCon
= UnitCon
| ListCon
| FunCon
| TupleCon Int
| Cons
data CName
= VarName Name
| ConName Name
data IPName
= IPDup String
| IPLin String
data Bracket
= ExpBracket Exp
| PatBracket Pat
| TypeBracket Type
| DeclBracket [Decl]
data Splice
= IdSplice String
| ParenSplice Exp
data RPat
= RPOp RPat RPatOp
| RPEither RPat RPat
| RPSeq [RPat]
| RPGuard Pat [Stmt]
| RPCAs Name RPat
| RPAs Name RPat
| RPParen RPat
| RPPat Pat
data RPatOp
= RPStar
| RPStarG
| RPPlus
| RPPlusG
| RPOpt
| RPOptG
data XAttr = XAttr XName Exp
data XName
= XName String
| XDomName String String
data PXAttr = PXAttr XName Pat
data Safety
= PlayRisky
| PlaySafe Bool
data CallConv
= StdCall
| CCall
data OptionPragma
= LanguagePragma SrcLoc [Name]
| IncludePragma SrcLoc String
| CFilesPragma SrcLoc String
| OptionsPragma SrcLoc (Maybe Tool) String
| UnknownTopPragma SrcLoc String String
data Tool
= GHC
| HUGS
| NHC98
| YHC
| HADDOCK
| UnknownTool String
data WarningText
= DeprText String
| WarnText String
data Rule = Rule String Activation (Maybe [RuleVar]) Exp Exp
data RuleVar
= RuleVar Name
| TypedRuleVar Name Type
data Activation
= AlwaysActive
| ActiveFrom Int
| ActiveUntil Int
main_mod :: ModuleName
main_name :: Name
unit_con_name :: QName
tuple_con_name :: Int -> QName
list_cons_name :: QName
unit_con :: Exp
tuple_con :: Int -> Exp
qualified_name :: Name
safe_name :: Name
fun_tycon_name :: QName
tuple_tycon_name :: Int -> QName
fun_tycon :: Type
tuple_tycon :: Int -> Type
data SrcLoc = SrcLoc {
srcFilename :: String
srcLine :: Int
srcColumn :: Int
}
Modules
data Module
A Haskell source module.
Constructors
Module SrcLoc ModuleName [OptionPragma] (Maybe WarningText) (Maybe [ExportSpec]) [ImportDecl] [Decl]
show/hide Instances
data ExportSpec
Export specification.
Constructors
EVar QNamevariable
EAbs QNameT: a class or datatype exported abstractly, or a type synonym.
EThingAll QNameT(..): a class exported with all of its methods, or a datatype exported with all of its constructors.
EThingWith QName [CName]T(C_1,...,C_n): a class exported with some of its methods, or a datatype exported with some of its constructors.
EModuleContents ModuleNamemodule M: re-export a module.
show/hide Instances
data ImportDecl
Import declaration.
Constructors
ImportDecl
importLoc :: SrcLocposition of the import keyword.
importModule :: ModuleNamename of the module imported.
importQualified :: Boolimported qualified?
importSrc :: Boolimported with {--}
importAs :: Maybe ModuleNameoptional alias name in an as clause.
importSpecs :: Maybe (Bool, [ImportSpec])optional list of import specifications. The Bool is True if the names are excluded by hiding.
show/hide Instances
data ImportSpec
Import specification.
Constructors
IVar Namevariable
IAbs NameT: the name of a class, datatype or type synonym.
IThingAll NameT(..): a class imported with all of its methods, or a datatype imported with all of its constructors.
IThingWith Name [CName]T(C_1,...,C_n): a class imported with some of its methods, or a datatype imported with some of its constructors.
show/hide Instances
data Assoc
Associativity of an operator.
Constructors
AssocNonenon-associative operator (declared with infix)
AssocLeftleft-associative operator (declared with infixl).
AssocRightright-associative operator (declared with infixr)
show/hide Instances
Declarations
data Decl
Constructors
TypeDecl SrcLoc Name [Name] Type
DataDecl SrcLoc DataOrNew Context Name [Name] [QualConDecl] [Deriving]
GDataDecl SrcLoc DataOrNew Context Name [Name] (Maybe Kind) [GadtDecl] [Deriving]
TypeFamDecl SrcLoc Name [Name] (Maybe Kind)
DataFamDecl SrcLoc Context Name [Name] (Maybe Kind)
TypeInsDecl SrcLoc Type Type
DataInsDecl SrcLoc DataOrNew Type [QualConDecl] [Deriving]
GDataInsDecl SrcLoc DataOrNew Type (Maybe Kind) [GadtDecl] [Deriving]
InfixDecl SrcLoc Assoc Int [Op]
ClassDecl SrcLoc Context Name [Name] [FunDep] [ClassDecl]
InstDecl SrcLoc Context QName [Type] [InstDecl]
DerivDecl SrcLoc Context QName [Type]
DefaultDecl SrcLoc [Type]
SpliceDecl SrcLoc Splice
TypeSig SrcLoc [Name] Type
FunBind [Match]
PatBind SrcLoc Pat (Maybe Type) Rhs Binds
ForImp SrcLoc CallConv Safety String Name Type
ForExp SrcLoc CallConv String Name Type
RulePragmaDecl SrcLoc [Rule]
DeprPragmaDecl SrcLoc [([Name], String)]
WarnPragmaDecl SrcLoc [([Name], String)]
InlineSig SrcLoc Bool Activation QName
SpecSig SrcLoc QName [Type]
SpecInlineSig SrcLoc Bool Activation QName [Type]
InstSig SrcLoc Context QName [Type]
UnknownDeclPragma SrcLoc String String
show/hide Instances
data Binds
Constructors
BDecls [Decl]
IPBinds [IPBind]
show/hide Instances
data IPBind
Constructors
IPBind SrcLoc IPName Exp
show/hide Instances
data ClassDecl
Declarations inside a class declaration
Constructors
ClsDecl Decl
ClsDataFam SrcLoc Context Name [Name] (Maybe Kind)
ClsTyFam SrcLoc Name [Name] (Maybe Kind)
ClsTyDef SrcLoc Type Type
show/hide Instances
data InstDecl
Declarations inside an instance declaration
Constructors
InsDecl Decl
InsType SrcLoc Type Type
InsData SrcLoc DataOrNew Type [QualConDecl] [Deriving]
InsGData SrcLoc DataOrNew Type (Maybe Kind) [GadtDecl] [Deriving]
InsInline SrcLoc Bool Activation QName
show/hide Instances
type Deriving = (QName, [QName])
data GadtDecl
Constructors
GadtDecl SrcLoc Name Type
show/hide Instances
data ConDecl
Declaration of a data constructor.
Constructors
ConDecl Name [BangType]ordinary data constructor
RecDecl Name [([Name], BangType)]record constructor
show/hide Instances
data QualConDecl
Constructors
QualConDecl SrcLoc [TyVarBind] Context ConDecl
show/hide Instances
data BangType
The type of a constructor argument or field, optionally including a strictness annotation.
Constructors
BangedTy Typestrict component, marked with "!"
UnBangedTy Typenon-strict component
UnpackedTy Typeunboxed component
show/hide Instances
data Match
Clauses of a function binding.
Constructors
Match SrcLoc Name [Pat] (Maybe Type) Rhs Binds
show/hide Instances
data Rhs
The right hand side of a function or pattern binding.
Constructors
UnGuardedRhs Expunguarded right hand side (exp)
GuardedRhss [GuardedRhs]guarded right hand side (gdrhs)
show/hide Instances
data GuardedRhs
A guarded right hand side | exp = exp. The first expression will be Boolean-valued.
Constructors
GuardedRhs SrcLoc [Stmt] Exp
show/hide Instances
data DataOrNew
Constructors
DataType
NewType
show/hide Instances
Class Assertions and Contexts
type Context = [Asst]
data FunDep
A functional dependency, given on the form l1 l2 ... ln -> r2 r3 .. rn
Constructors
FunDep [Name] [Name]
show/hide Instances
data Asst
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.
Constructors
ClassA QName [Type]
IParam IPName Type
EqualP Type Type
show/hide Instances
Types
data Type
A type qualified with a context. An unqualified type has an empty context.
Constructors
TyForall (Maybe [TyVarBind]) Context Type
TyFun Type Typefunction type
TyTuple Boxed [Type]tuple type, possibly boxed
TyApp Type Typeapplication of a type constructor
TyVar Nametype variable
TyCon QNamenamed type or type constructor
TyPred Asstassertion of an implicit parameter
TyInfix Type QName Typeinfix type constructor
TyKind Type Kindtype with explicit kind signature
show/hide Instances
data Boxed
Constructors
Boxed
Unboxed
show/hide Instances
data Kind
Constructors
KindStar
KindBang
KindFn Kind Kind
show/hide Instances
data TyVarBind
Constructors
KindedVar Name Kind
UnkindedVar Name
show/hide Instances
Expressions
data Exp

Haskell expressions.

Notes:

  • Because it is difficult for parsers to distinguish patterns from expressions, they typically parse them in the same way and then check that they have the appropriate form. Hence the expression type includes some forms that are found only in patterns. After these checks, these constructors should not be used.
  • The parser does not take precedence and associativity into account, so it will leave InfixApps associated to the left.
  • The Language.Haskell.Exts.Pretty.Pretty instance for Exp does not add parentheses in printing.
Constructors
Var QNamevariable
IPVar IPNameimplicit parameter variable
Con QNamedata constructor
Lit Literalliteral constant
InfixApp Exp QOp Expinfix application
App Exp Expordinary application
NegApp Expnegation expression - exp
Lambda SrcLoc [Pat] Explambda expression
Let Binds Explocal declarations with let
If Exp Exp Expif exp then exp else exp
Case Exp [Alt]case exp of alts
Do [Stmt]do-expression: the last statement in the list should be an expression.
MDo [Stmt]mdo-expression
Tuple [Exp]tuple expression
List [Exp]list expression
Paren Expparenthesized expression
LeftSection Exp QOpleft section (exp qop)
RightSection QOp Expright section (qop exp)
RecConstr QName [FieldUpdate]record construction expression
RecUpdate Exp [FieldUpdate]record update expression
EnumFrom Expunbounded arithmetic sequence, incrementing by 1
EnumFromTo Exp Expbounded arithmetic sequence, incrementing by 1
EnumFromThen Exp Expunbounded arithmetic sequence, with first two elements given
EnumFromThenTo Exp Exp Expbounded arithmetic sequence, with first two elements given
ListComp Exp [Stmt]list comprehension
ExpTypeSig SrcLoc Exp Typeexpression type signature Template Haskell
VarQuote QName'x
TypQuote QName''T
BracketExp Bracket
SpliceExp Splice
XTag SrcLoc XName [XAttr] (Maybe Exp) [Exp]
XETag SrcLoc XName [XAttr] (Maybe Exp)
XPcdata String
XExpTag Exp
CorePragma String
SCCPragma String
GenPragma String (Int, Int) (Int, Int)
UnknownExpPragma String String
show/hide Instances
data Stmt
This type represents both stmt in a do-expression, and qual in a list comprehension, as well as stmt in a pattern guard.
Constructors
Generator SrcLoc Pat Expa generator pat <- exp
Qualifier Expan exp by itself: in a do-expression, an action whose result is discarded; in a list comprehension, a guard expression
LetStmt Bindslocal bindings
show/hide Instances
data FieldUpdate
An fbind in a labeled construction or update.
Constructors
FieldUpdate QName Exp
FieldPun Name
FieldWildcard
show/hide Instances
data Alt
An alt in a case expression.
Constructors
Alt SrcLoc Pat GuardedAlts Binds
show/hide Instances
data GuardedAlts
Constructors
UnGuardedAlt Exp-> exp
GuardedAlts [GuardedAlt]gdpat
show/hide Instances
data GuardedAlt
A guarded alternative | stmt, ... , stmt -> exp.
Constructors
GuardedAlt SrcLoc [Stmt] Exp
show/hide Instances
Patterns
data Pat
A pattern, to be matched against a value.
Constructors
PVar Namevariable
PLit Literalliteral constant
PNeg Patnegated pattern
PNPlusK Name Integern+k pattern
PInfixApp Pat QName Patpattern with infix data constructor
PApp QName [Pat]data constructor and argument patterns
PTuple [Pat]tuple pattern
PList [Pat]list pattern
PParen Patparenthesized pattern
PRec QName [PatField]labelled pattern
PAsPat Name Pat@-pattern
PWildCardwildcard pattern (_)
PIrrPat Patirrefutable pattern (~)
PatTypeSig SrcLoc Pat Typepattern type signature
PViewPat Exp Patview patterns of the form (e -> p) HaRP
PRPat [RPat]regular pattern (HaRP) Hsx
PXTag SrcLoc XName [PXAttr] (Maybe Pat) [Pat]XML tag pattern
PXETag SrcLoc XName [PXAttr] (Maybe Pat)XML singleton tag pattern
PXPcdata StringXML PCDATA pattern
PXPatTag PatXML embedded pattern
PXRPats [RPat]XML regular list pattern
show/hide Instances
data PatField
An fpat in a labeled record pattern.
Constructors
PFieldPat QName Pat
PFieldPun Name
PFieldWildcard
show/hide Instances
Literals
data Literal
literal Values of this type hold the abstract value of the literal, not the precise string representation used. For example, 10, 0o12 and 0xa have the same representation.
Constructors
Char Charcharacter literal
String Stringstring literal
Int Integerinteger literal
Frac Rationalfloating point literal
PrimInt IntegerGHC unboxed integer literal
PrimWord IntegerGHC unboxed word literal
PrimFloat RationalGHC unboxed float literal
PrimDouble RationalGHC unboxed double literal
PrimChar CharGHC unboxed character literal
PrimString StringGHC unboxed string literal
show/hide Instances
Variables, Constructors and Operators
newtype ModuleName
The name of a Haskell module.
Constructors
ModuleName String
show/hide Instances
data QName
This type is used to represent qualified variables, and also qualified constructors.
Constructors
Qual ModuleName Namename qualified with a module name
UnQual Nameunqualified name
Special SpecialConbuilt-in constructor with special syntax
show/hide Instances
data Name
This type is used to represent variables, and also constructors.
Constructors
Ident Stringvarid or conid.
Symbol Stringvarsym or consym
show/hide Instances
data QOp
Possibly qualified infix operators (qop), appearing in expressions.
Constructors
QVarOp QNamevariable operator (qvarop)
QConOp QNameconstructor operator (qconop)
show/hide Instances
data Op
Operators, appearing in infix declarations.
Constructors
VarOp Namevariable operator (varop)
ConOp Nameconstructor operator (conop)
show/hide Instances
data SpecialCon
Constructors with special syntax. These names are never qualified, and always refer to builtin type or data constructors.
Constructors
UnitConunit type and data constructor ()
ListConlist type constructor []
FunConfunction type constructor ->
TupleCon Intn-ary tuple type and data constructors (,) etc
Conslist data constructor (:)
show/hide Instances
data CName
A name (cname) of a component of a class or data type in an import or export specification.
Constructors
VarName Namename of a method or field
ConName Namename of a data constructor
show/hide Instances
data IPName
This type is used to represent implicit parameter names.
Constructors
IPDup String
IPLin String
show/hide Instances
Template Haskell
data Bracket
Constructors
ExpBracket Exp
PatBracket Pat
TypeBracket Type
DeclBracket [Decl]
show/hide Instances
data Splice
Constructors
IdSplice String
ParenSplice Exp
show/hide Instances
HaRP
data RPat
An entity in a regular pattern (HaRP)
Constructors
RPOp RPat RPatOp
RPEither RPat RPat
RPSeq [RPat]
RPGuard Pat [Stmt]
RPCAs Name RPat
RPAs Name RPat
RPParen RPat
RPPat Pat
show/hide Instances
data RPatOp
A regular pattern operator (HaRP)
Constructors
RPStar
RPStarG
RPPlus
RPPlusG
RPOpt
RPOptG
show/hide Instances
Hsx
data XAttr
Constructors
XAttr XName Exp
show/hide Instances
data XName
Constructors
XName String
XDomName String String
show/hide Instances
data PXAttr
An XML attribute in an XML tag pattern
Constructors
PXAttr XName Pat
show/hide Instances
FFI
data Safety
Constructors
PlayRisky
PlaySafe Bool
show/hide Instances
data CallConv
Constructors
StdCall
CCall
show/hide Instances
Pragmas
data OptionPragma
Constructors
LanguagePragma SrcLoc [Name]
IncludePragma SrcLoc String
CFilesPragma SrcLoc String
OptionsPragma SrcLoc (Maybe Tool) String
UnknownTopPragma SrcLoc String String
show/hide Instances
data Tool
Constructors
GHC
HUGS
NHC98
YHC
HADDOCK
UnknownTool String
show/hide Instances
data WarningText
Constructors
DeprText String
WarnText String
show/hide Instances
data Rule
Constructors
Rule String Activation (Maybe [RuleVar]) Exp Exp
show/hide Instances
data RuleVar
Constructors
RuleVar Name
TypedRuleVar Name Type
show/hide Instances
data Activation
Constructors
AlwaysActive
ActiveFrom Int
ActiveUntil Int
show/hide Instances
Builtin names
Modules
main_mod :: ModuleName
Main function of a program
main_name :: Name
Constructors
unit_con_name :: QName
tuple_con_name :: Int -> QName
list_cons_name :: QName
unit_con :: Exp
tuple_con :: Int -> Exp
Special identifiers
qualified_name :: Name
safe_name :: Name
Type constructors
fun_tycon_name :: QName
tuple_tycon_name :: Int -> QName
fun_tycon :: Type
tuple_tycon :: Int -> Type
Source coordinates
data SrcLoc
A position in the source.
Constructors
SrcLoc
srcFilename :: String
srcLine :: Int
srcColumn :: Int
show/hide Instances
Produced by Haddock version 2.3.0