summaryrefslogtreecommitdiff
path: root/compiler/hsSyn
diff options
context:
space:
mode:
authorThomas Schilling <nominolo@googlemail.com>2008-10-07 23:56:56 +0000
committerThomas Schilling <nominolo@googlemail.com>2008-10-07 23:56:56 +0000
commit311df5db57b78a34d195f554cca805a057741709 (patch)
tree635a1cfbece335de60260f2d20a7f5d0f277b03c /compiler/hsSyn
parentd6f008560fc29058fcad9bcf59e0a2ff9e4fc780 (diff)
downloadhaskell-311df5db57b78a34d195f554cca805a057741709.tar.gz
Add accessors to 'HsModule' and haddockify it.
Diffstat (limited to 'compiler/hsSyn')
-rw-r--r--compiler/hsSyn/HsSyn.lhs42
1 files changed, 27 insertions, 15 deletions
diff --git a/compiler/hsSyn/HsSyn.lhs b/compiler/hsSyn/HsSyn.lhs
index 6277f5cc3c..45d1ec05a2 100644
--- a/compiler/hsSyn/HsSyn.lhs
+++ b/compiler/hsSyn/HsSyn.lhs
@@ -47,23 +47,35 @@ import Module ( Module, ModuleName )
import FastString
\end{code}
-All we actually declare here is the top-level structure for a module.
\begin{code}
+-- | All we actually declare here is the top-level structure for a module.
data HsModule name
- = HsModule
- (Maybe (Located ModuleName))-- Nothing => "module X where" is omitted
- -- (in which case the next field is Nothing too)
- (Maybe [LIE name]) -- Export list; Nothing => export list omitted, so export everything
- -- Just [] => export *nothing*
- -- Just [...] => as you would expect...
- [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.
- [LHsDecl name] -- Type, class, value, and interface signature decls
- (Maybe WarningTxt) -- reason/explanation for warning/deprecation of this module
- (HaddockModInfo name) -- Haddock module info
- (Maybe (HsDoc name)) -- Haddock module description
+ = HsModule {
+ 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
+ hsmodHaddockModInfo :: HaddockModInfo name,
+ -- ^ Haddock module info
+ hsmodHaddockModDescr :: Maybe (HsDoc name)
+ -- ^ Haddock module description
+ }
data HaddockModInfo name = HaddockModInfo {
hmi_description :: Maybe (HsDoc name),