ghc-7.10.3: The GHC API

Safe HaskellNone
LanguageHaskell2010

HsSyn

Synopsis

Documentation

module HsBinds

module HsDecls

module HsExpr

module HsImpExp

module HsLit

module HsPat

module HsTypes

module HsUtils

module HsDoc

data HsModule name Source

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

Constructors

HsModule

AnnKeywordIds

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...
  • AnnKeywordIds : 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

hsmodHaddockModHeader :: Maybe LHsDocString

Haddock module info and description, unparsed

Instances

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