\begin{code}
module HsSyn (
- -- NB: don't reexport HsCore or HsPragmas;
+ -- NB: don't reexport HsCore
-- this module tells about "real Haskell"
module HsSyn,
module HsTypes,
Fixity, NewOrData,
- collectTopBinders, collectMonoBinders, collectLocatedMonoBinders
+ collectTopBinders, collectMonoBinders, collectLocatedMonoBinders,
+ hsModuleName, hsModuleImports
) where
#include "HsVersions.h"
import HsMatches
import HsPat
import HsTypes
-import HsCore
import BasicTypes ( Fixity, Version, NewOrData )
-- others:
+import Name ( NamedThing )
import Outputable
import SrcLoc ( SrcLoc )
import Bag
\end{code}
\begin{code}
-instance (Outputable name, Outputable pat)
+instance (NamedThing name, Outputable name, Outputable pat)
=> Outputable (HsModule name pat) where
ppr (HsModule name iface_version exports imports
pp_nonnull [] = empty
pp_nonnull xs = vcat (map ppr xs)
+
+hsModuleName (HsModule mod_name _ _ _ _ _ _) = mod_name
+hsModuleImports (HsModule mod_name vers exports imports decls deprec src_loc) = imports
\end{code}