haskell-tools-ast-0.2.0.0: Haskell AST for efficient tooling

Safe HaskellNone
LanguageHaskell2010

Language.Haskell.Tools.AST.Modules

Description

Representation of Haskell modules, imports and exports. Also contains file-level pragmas.

Synopsis

Documentation

data Module dom stage Source #

The representation of a haskell module, that is a separate compilation unit. It may or may not have a header.

Constructors

Module 

Fields

Instances

type Rep (Module dom stage) Source # 
type Rep (Module dom stage) = D1 (MetaData "Module" "Language.Haskell.Tools.AST.Modules" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) (C1 (MetaCons "Module" PrefixI True) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "_filePragmas") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnList FilePragma dom stage))) (S1 (MetaSel (Just Symbol "_modHead") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnMaybe ModuleHead dom stage)))) ((:*:) (S1 (MetaSel (Just Symbol "_modImports") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnList ImportDecl dom stage))) (S1 (MetaSel (Just Symbol "_modDecl") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnList Decl dom stage))))))

data ModuleHead dom stage Source #

Module declaration with name and (optional) exports

Constructors

ModuleHead 

Fields

Instances

type Rep (ModuleHead dom stage) Source # 
type Rep (ModuleHead dom stage) = D1 (MetaData "ModuleHead" "Language.Haskell.Tools.AST.Modules" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) (C1 (MetaCons "ModuleHead" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "_mhName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann ModuleName dom stage))) ((:*:) (S1 (MetaSel (Just Symbol "_mhExports") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnMaybe ExportSpecList dom stage))) (S1 (MetaSel (Just Symbol "_mhPragma") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnMaybe ModulePragma dom stage))))))

data ExportSpecList dom stage Source #

A list of export specifications surrounded by parentheses

Constructors

ExportSpecList 

Fields

Instances

type Rep (ExportSpecList dom stage) Source # 
type Rep (ExportSpecList dom stage) = D1 (MetaData "ExportSpecList" "Language.Haskell.Tools.AST.Modules" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) (C1 (MetaCons "ExportSpecList" PrefixI True) (S1 (MetaSel (Just Symbol "_espExports") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnList ExportSpec dom stage))))

data ExportSpec dom stage Source #

Export specifier

Constructors

DeclExport

Export a name and related names

Fields

ModuleExport

The export of an imported module ( module A )

Fields

Instances

type Rep (ExportSpec dom stage) Source # 
type Rep (ExportSpec dom stage) = D1 (MetaData "ExportSpec" "Language.Haskell.Tools.AST.Modules" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) ((:+:) (C1 (MetaCons "DeclExport" PrefixI True) (S1 (MetaSel (Just Symbol "_exportDecl") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann IESpec dom stage)))) (C1 (MetaCons "ModuleExport" PrefixI True) (S1 (MetaSel (Just Symbol "_exportModuleName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann ModuleName dom stage)))))

data IESpec dom stage Source #

Marks a name to be imported or exported with related names (subspecifier)

Constructors

IESpec 

Fields

Instances

type Rep (IESpec dom stage) Source # 
type Rep (IESpec dom stage) = D1 (MetaData "IESpec" "Language.Haskell.Tools.AST.Modules" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) (C1 (MetaCons "IESpec" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "_ieName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann Name dom stage))) (S1 (MetaSel (Just Symbol "_ieSubspec") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnMaybe SubSpec dom stage)))))

data SubSpec dom stage Source #

Marks how related names will be imported or exported with a given name

Constructors

SubSpecAll 
SubSpecList 

Fields

Instances

type Rep (SubSpec dom stage) Source # 
type Rep (SubSpec dom stage) = D1 (MetaData "SubSpec" "Language.Haskell.Tools.AST.Modules" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) ((:+:) (C1 (MetaCons "SubSpecAll" PrefixI False) U1) (C1 (MetaCons "SubSpecList" PrefixI True) (S1 (MetaSel (Just Symbol "_essList") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnList Name dom stage)))))

data FilePragma dom stage Source #

Pragmas that must be used before defining the module

Constructors

LanguagePragma

LANGUAGE pragmdom stage

Fields

OptionsPragma

OPTIONS pragma, possibly qualified with a tool, e.g. OPTIONS_GHC

Fields

Instances

type Rep (FilePragma dom stage) Source # 
type Rep (FilePragma dom stage) = D1 (MetaData "FilePragma" "Language.Haskell.Tools.AST.Modules" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) ((:+:) (C1 (MetaCons "LanguagePragma" PrefixI True) (S1 (MetaSel (Just Symbol "_lpPragmas") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnList LanguageExtension dom stage)))) (C1 (MetaCons "OptionsPragma" PrefixI True) (S1 (MetaSel (Just Symbol "_opStr") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann StringNode dom stage)))))

data ModulePragma dom stage Source #

Pragmas that must be used after the module head

Constructors

ModuleWarningPragma

a warning pragma attached to the module

Fields

ModuleDeprecatedPragma

a deprecated pragma attached to the module

Instances

type Rep (ModulePragma dom stage) Source # 
type Rep (ModulePragma dom stage) = D1 (MetaData "ModulePragma" "Language.Haskell.Tools.AST.Modules" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) ((:+:) (C1 (MetaCons "ModuleWarningPragma" PrefixI True) (S1 (MetaSel (Just Symbol "_modWarningStr") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnList StringNode dom stage)))) (C1 (MetaCons "ModuleDeprecatedPragma" PrefixI True) (S1 (MetaSel (Just Symbol "_modDeprecatedPragma") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnList StringNode dom stage)))))

data LanguageExtension dom stage Source #

The name of the enabled language extension, for example ( LambdaCase )

Constructors

LanguageExtension 

Fields

Instances

type Rep (LanguageExtension dom stage) Source # 
type Rep (LanguageExtension dom stage) = D1 (MetaData "LanguageExtension" "Language.Haskell.Tools.AST.Modules" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) (C1 (MetaCons "LanguageExtension" PrefixI True) (S1 (MetaSel (Just Symbol "_langExt") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String)))

data ImportDecl dom stage Source #

An import declaration: import Module.Name

Instances

type Rep (ImportDecl dom stage) Source # 
type Rep (ImportDecl dom stage) = D1 (MetaData "ImportDecl" "Language.Haskell.Tools.AST.Modules" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) (C1 (MetaCons "ImportDecl" PrefixI True) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "_importSource") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnMaybe ImportSource dom stage))) ((:*:) (S1 (MetaSel (Just Symbol "_importQualified") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnMaybe ImportQualified dom stage))) (S1 (MetaSel (Just Symbol "_importSafe") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnMaybe ImportSafe dom stage))))) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "_importPkg") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnMaybe StringNode dom stage))) (S1 (MetaSel (Just Symbol "_importModule") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann ModuleName dom stage)))) ((:*:) (S1 (MetaSel (Just Symbol "_importAs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnMaybe ImportRenaming dom stage))) (S1 (MetaSel (Just Symbol "_importSpec") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnMaybe ImportSpec dom stage)))))))

data ImportSpec dom stage Source #

Restriction on the imported names

Constructors

ImportSpecList

Restrict the import definition to ONLY import the listed names

Fields

ImportSpecHiding

Restrict the import definition to DONT import the listed names

Fields

Instances

type Rep (ImportSpec dom stage) Source # 
type Rep (ImportSpec dom stage) = D1 (MetaData "ImportSpec" "Language.Haskell.Tools.AST.Modules" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) ((:+:) (C1 (MetaCons "ImportSpecList" PrefixI True) (S1 (MetaSel (Just Symbol "_importSpecList") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnList IESpec dom stage)))) (C1 (MetaCons "ImportSpecHiding" PrefixI True) (S1 (MetaSel (Just Symbol "_importSpecHiding") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnList IESpec dom stage)))))

data ImportQualified dom stage Source #

Marks the import as qualified: qualified

Constructors

ImportQualified 

Instances

type Rep (ImportQualified dom stage) Source # 
type Rep (ImportQualified dom stage) = D1 (MetaData "ImportQualified" "Language.Haskell.Tools.AST.Modules" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) (C1 (MetaCons "ImportQualified" PrefixI False) U1)

data ImportSource dom stage Source #

Marks the import as source: {--}

Constructors

ImportSource 

Instances

type Rep (ImportSource dom stage) Source # 
type Rep (ImportSource dom stage) = D1 (MetaData "ImportSource" "Language.Haskell.Tools.AST.Modules" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) (C1 (MetaCons "ImportSource" PrefixI False) U1)

data ImportSafe dom stage Source #

Marks the import as safe: safe

Constructors

ImportSafe 

Instances

type Rep (ImportSafe dom stage) Source # 
type Rep (ImportSafe dom stage) = D1 (MetaData "ImportSafe" "Language.Haskell.Tools.AST.Modules" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) (C1 (MetaCons "ImportSafe" PrefixI False) U1)

data TypeNamespace dom stage Source #

Marks an imported name to belong to the type namespace: type

Constructors

TypeNamespace 

Instances

type Rep (TypeNamespace dom stage) Source # 
type Rep (TypeNamespace dom stage) = D1 (MetaData "TypeNamespace" "Language.Haskell.Tools.AST.Modules" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) (C1 (MetaCons "TypeNamespace" PrefixI False) U1)

data ImportRenaming dom stage Source #

Renaming imports ( as A )

Constructors

ImportRenaming 

Fields

Instances

type Rep (ImportRenaming dom stage) Source # 
type Rep (ImportRenaming dom stage) = D1 (MetaData "ImportRenaming" "Language.Haskell.Tools.AST.Modules" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) (C1 (MetaCons "ImportRenaming" PrefixI True) (S1 (MetaSel (Just Symbol "_importRename") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann ModuleName dom stage))))