ghc-7.8.4: The GHC API

Safe HaskellNone
LanguageHaskell98

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 

Fields

hsmodName :: Maybe (Located ModuleName)

Nothing: "module X where" is omitted (in which case the next field is Nothing too)

hsmodExports :: Maybe [LIE name]

Export list

  • Nothing: export list omitted, so export everything
  • Just []: export nothing
  • Just [...]: as you would expect...
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 WarningTxt

reason/explanation for warning/deprecation of this module

hsmodHaddockModHeader :: Maybe LHsDocString

Haddock module info and description, unparsed

Instances

Data name => Data (HsModule name) 
(OutputableBndr name, HasOccName name) => Outputable (HsModule name) 
Typeable (* -> *) HsModule 

data HsExtCore name Source

Constructors

HsExtCore Module [TyClDecl name] [IfaceBinding]