HsSyn

ghc-7.10.3: The GHC API

Safe Haskell | None
Language | Haskell2010

HsSyn

Synopsis

- module HsBinds
- module HsDecls
- module HsExpr
- module HsImpExp
- module HsLit
- module HsPat
- module HsTypes
- module HsUtils
- module HsDoc
- module PlaceHolder
- data Fixity
- data HsModule name = HsModule {
  - hsmodName :: Maybe (Located ModuleName)
  - hsmodExports :: Maybe (Located [LIE name])
  - hsmodImports :: [LImportDecl name]
  - hsmodDecls :: [LHsDecl name]
  - hsmodDeprecMessage :: Maybe (Located WarningTxt)
  - hsmodHaddockModHeader :: Maybe LHsDocString
  }

# Documentation

module HsBinds

module HsDecls

module HsExpr

module HsImpExp

module HsLit

module HsPat

module HsTypes

module HsUtils

module HsDoc

module PlaceHolder

data Fixity

Instances

Eq Fixity |
Data Fixity |
Outputable Fixity |
Binary Fixity |

data HsModule name

All we actually declare here is the top-level structure for a module.

Constructors

HsModule | `AnnKeywordId`s `AnnModule`,`AnnWhere` `AnnOpen`,`AnnSemi`, `AnnClose` for explicit braces and semi around hsmodImports,hsmodDecls if this style is used.
Fields hsmodName :: Maybe (Located ModuleName) `Nothing`: "module X where" is omitted (in which case the next field is Nothing too) hsmodExports :: Maybe (Located [LIE name]) Export list `Nothing`: export list omitted, so export everything `Just []`: export nothing `Just [...]`: as you would expect... `AnnKeywordId`s : `AnnOpen` ,`AnnClose` hsmodImports :: [LImportDecl name] We snaffle interesting stuff out of the imported interfaces early on, adding that info to TyDecls/etc; so this list is often empty, downstream. hsmodDecls :: [LHsDecl name] Type, class, value, and interface signature decls hsmodDeprecMessage :: Maybe (Located WarningTxt) reason/explanation for warning/deprecation of this module `AnnKeywordId`s : `AnnOpen` ,`AnnClose` hsmodHaddockModHeader :: Maybe LHsDocString Haddock module info and description, unparsed `AnnKeywordId`s : `AnnOpen` ,`AnnClose`

Instances

DataId name => Data (HsModule name) |
(OutputableBndr name, HasOccName name) => Outputable (HsModule name) |