From 311df5db57b78a34d195f554cca805a057741709 Mon Sep 17 00:00:00 2001 From: Thomas Schilling Date: Tue, 7 Oct 2008 23:56:56 +0000 Subject: [PATCH] Add accessors to 'HsModule' and haddockify it. --- compiler/hsSyn/HsSyn.lhs | 42 +++++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/compiler/hsSyn/HsSyn.lhs b/compiler/hsSyn/HsSyn.lhs index 6277f5c..45d1ec0 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), -- 1.7.10.4