Constructors:
Module
                    ::  SpanInfo ->  [ModulePragma] ->  ModuleIdent ->  (Maybe ExportSpec) ->  [ImportDecl] ->  [Decl a] -> Module a
              Constructors:
LanguagePragma
                    ::  SpanInfo ->  [Extension] -> ModulePragma
              OptionsPragma
                    ::  SpanInfo ->  (Maybe Tool) ->  String -> ModulePragma
              Constructors:
Constructors:
Export
                    ::  SpanInfo ->  QualIdent -> Export
              ExportTypeWith
                    ::  SpanInfo ->  QualIdent ->  [Ident] -> Export
              ExportTypeAll
                    ::  SpanInfo ->  QualIdent -> Export
              ExportModule
                    ::  SpanInfo ->  ModuleIdent -> Export
              Constructors:
ImportDecl
                    ::  SpanInfo ->  ModuleIdent ->  Qualified ->  (Maybe ModuleIdent) ->  (Maybe ImportSpec) -> ImportDecl
              
              Type synonym: Qualified = Bool
            
Constructors:
Constructors:
Import
                    ::  SpanInfo ->  Ident -> Import
              ImportTypeWith
                    ::  SpanInfo ->  Ident ->  [Ident] -> Import
              ImportTypeAll
                    ::  SpanInfo ->  Ident -> Import
              Constructors:
InfixDecl
                    ::  SpanInfo ->  Infix ->  (Maybe Precedence) ->  [Ident] -> Decl a
              DataDecl
                    ::  SpanInfo ->  Ident ->  [Ident] ->  [ConstrDecl] ->  [QualIdent] -> Decl a
              ExternalDataDecl
                    ::  SpanInfo ->  Ident ->  [Ident] -> Decl a
              NewtypeDecl
                    ::  SpanInfo ->  Ident ->  [Ident] ->  NewConstrDecl ->  [QualIdent] -> Decl a
              TypeDecl
                    ::  SpanInfo ->  Ident ->  [Ident] ->  TypeExpr -> Decl a
              TypeSig
                    ::  SpanInfo ->  [Ident] ->  QualTypeExpr -> Decl a
              FunctionDecl
                    ::  SpanInfo ->  a ->  Ident ->  [Equation a] -> Decl a
              ExternalDecl
                    ::  SpanInfo ->  [Var a] -> Decl a
              PatternDecl
                    ::  SpanInfo ->  (Pattern a) ->  (Rhs a) -> Decl a
              FreeDecl
                    ::  SpanInfo ->  [Var a] -> Decl a
              DefaultDecl
                    ::  SpanInfo ->  [TypeExpr] -> Decl a
              ClassDecl
                    ::  SpanInfo ->  Context ->  Ident ->  Ident ->  [Decl a] -> Decl a
              InstanceDecl
                    ::  SpanInfo ->  Context ->  QualIdent ->  InstanceType ->  [Decl a] -> Decl a
              
              Type synonym: Precedence = Int
            
Constructors:
InfixL
                    :: Infix
              InfixR
                    :: Infix
              Infix
                    :: Infix
              Constructors:
ConstrDecl
                    ::  SpanInfo ->  Ident ->  [TypeExpr] -> ConstrDecl
              ConOpDecl
                    ::  SpanInfo ->  TypeExpr ->  Ident ->  TypeExpr -> ConstrDecl
              RecordDecl
                    ::  SpanInfo ->  Ident ->  [FieldDecl] -> ConstrDecl
              Constructors:
NewConstrDecl
                    ::  SpanInfo ->  Ident ->  TypeExpr -> NewConstrDecl
              NewRecordDecl
                    ::  SpanInfo ->  Ident ->  (Ident,TypeExpr) -> NewConstrDecl
              Constructors:
Constructors:
ConstructorType
                    ::  SpanInfo ->  QualIdent -> TypeExpr
              ApplyType
                    ::  SpanInfo ->  TypeExpr ->  TypeExpr -> TypeExpr
              VariableType
                    ::  SpanInfo ->  Ident -> TypeExpr
              TupleType
                    ::  SpanInfo ->  [TypeExpr] -> TypeExpr
              ListType
                    ::  SpanInfo ->  TypeExpr -> TypeExpr
              ArrowType
                    ::  SpanInfo ->  TypeExpr ->  TypeExpr -> TypeExpr
              ParenType
                    ::  SpanInfo ->  TypeExpr -> TypeExpr
              ForallType
                    ::  SpanInfo ->  [Ident] ->  TypeExpr -> TypeExpr
              Constructors:
              Type synonym: Context = [Constraint]
            
Constructors:
              Type synonym: InstanceType = TypeExpr
            
Constructors:
Constructors:
FunLhs
                    ::  SpanInfo ->  Ident ->  [Pattern a] -> Lhs a
              OpLhs
                    ::  SpanInfo ->  (Pattern a) ->  Ident ->  (Pattern a) -> Lhs a
              ApLhs
                    ::  SpanInfo ->  (Lhs a) ->  [Pattern a] -> Lhs a
              Constructors:
SimpleRhs
                    ::  SpanInfo ->  (Expression a) ->  [Decl a] -> Rhs a
              GuardedRhs
                    ::  SpanInfo ->  [CondExpr a] ->  [Decl a] -> Rhs a
              Constructors:
CondExpr
                    ::  SpanInfo ->  (Expression a) ->  (Expression a) -> CondExpr a
              Constructors:
Char
                    ::  Char -> Literal
              Int
                    ::  Int -> Literal
              Float
                    ::  Float -> Literal
              String
                    ::  String -> Literal
              Constructors:
LiteralPattern
                    ::  SpanInfo ->  a ->  Literal -> Pattern a
              NegativePattern
                    ::  SpanInfo ->  a ->  Literal -> Pattern a
              VariablePattern
                    ::  SpanInfo ->  a ->  Ident -> Pattern a
              ConstructorPattern
                    ::  SpanInfo ->  a ->  QualIdent ->  [Pattern a] -> Pattern a
              InfixPattern
                    ::  SpanInfo ->  a ->  (Pattern a) ->  QualIdent ->  (Pattern a) -> Pattern a
              ParenPattern
                    ::  SpanInfo ->  (Pattern a) -> Pattern a
              RecordPattern
                    ::  SpanInfo ->  a ->  QualIdent ->  [Field (Pattern a)] -> Pattern a
              TuplePattern
                    ::  SpanInfo ->  [Pattern a] -> Pattern a
              ListPattern
                    ::  SpanInfo ->  a ->  [Pattern a] -> Pattern a
              AsPattern
                    ::  SpanInfo ->  Ident ->  (Pattern a) -> Pattern a
              LazyPattern
                    ::  SpanInfo ->  (Pattern a) -> Pattern a
              FunctionPattern
                    ::  SpanInfo ->  a ->  QualIdent ->  [Pattern a] -> Pattern a
              InfixFuncPattern
                    ::  SpanInfo ->  a ->  (Pattern a) ->  QualIdent ->  (Pattern a) -> Pattern a
              Constructors:
Literal
                    ::  SpanInfo ->  a ->  Literal -> Expression a
              Variable
                    ::  SpanInfo ->  a ->  QualIdent -> Expression a
              Constructor
                    ::  SpanInfo ->  a ->  QualIdent -> Expression a
              Paren
                    ::  SpanInfo ->  (Expression a) -> Expression a
              Typed
                    ::  SpanInfo ->  (Expression a) ->  QualTypeExpr -> Expression a
              Record
                    ::  SpanInfo ->  a ->  QualIdent ->  [Field (Expression a)] -> Expression a
              RecordUpdate
                    ::  SpanInfo ->  (Expression a) ->  [Field (Expression a)] -> Expression a
              Tuple
                    ::  SpanInfo ->  [Expression a] -> Expression a
              List
                    ::  SpanInfo ->  a ->  [Expression a] -> Expression a
              ListCompr
                    ::  SpanInfo ->  (Expression a) ->  [Statement a] -> Expression a
              EnumFrom
                    ::  SpanInfo ->  (Expression a) -> Expression a
              EnumFromThen
                    ::  SpanInfo ->  (Expression a) ->  (Expression a) -> Expression a
              EnumFromTo
                    ::  SpanInfo ->  (Expression a) ->  (Expression a) -> Expression a
              EnumFromThenTo
                    ::  SpanInfo ->  (Expression a) ->  (Expression a) ->  (Expression a) -> Expression a
              UnaryMinus
                    ::  SpanInfo ->  (Expression a) -> Expression a
              Apply
                    ::  SpanInfo ->  (Expression a) ->  (Expression a) -> Expression a
              InfixApply
                    ::  SpanInfo ->  (Expression a) ->  (InfixOp a) ->  (Expression a) -> Expression a
              LeftSection
                    ::  SpanInfo ->  (Expression a) ->  (InfixOp a) -> Expression a
              RightSection
                    ::  SpanInfo ->  (InfixOp a) ->  (Expression a) -> Expression a
              Lambda
                    ::  SpanInfo ->  [Pattern a] ->  (Expression a) -> Expression a
              Let
                    ::  SpanInfo ->  [Decl a] ->  (Expression a) -> Expression a
              Do
                    ::  SpanInfo ->  [Statement a] ->  (Expression a) -> Expression a
              IfThenElse
                    ::  SpanInfo ->  (Expression a) ->  (Expression a) ->  (Expression a) -> Expression a
              Case
                    ::  SpanInfo ->  CaseType ->  (Expression a) ->  [Alt a] -> Expression a
              Constructors:
Constructors:
StmtExpr
                    ::  SpanInfo ->  (Expression a) -> Statement a
              StmtDecl
                    ::  SpanInfo ->  [Decl a] -> Statement a
              StmtBind
                    ::  SpanInfo ->  (Pattern a) ->  (Expression a) -> Statement a
              Constructors:
Rigid
                    :: CaseType
              Flex
                    :: CaseType
              Constructors:
Constructors:
Constructors:
Var
                    ::  a ->  Ident -> Var a
              Constructors:
KnownExtension
                    ::  Position ->  KnownExtension -> Extension
              UnknownExtension
                    ::  Position ->  String -> Extension
              Constructors:
AnonFreeVars
                    :: KnownExtension
              CPP
                    :: KnownExtension
              ExistentialQuantification
                    :: KnownExtension
              FunctionalPatterns
                    :: KnownExtension
              NegativeLiterals
                    :: KnownExtension
              NoImplicitPrelude
                    :: KnownExtension
              Constructors:
KICS2
                    :: Tool
              PAKCS
                    :: Tool
              CYMAKE
                    :: Tool
              FRONTEND
                    :: Tool
              UnknownTool
                    ::  String -> Tool