module ModSysAST where
import NamesEntities
import Relations
data Module = Module {
modName :: ModName,
modExpList :: Maybe [ExpListEntry],
modImports :: [Import],
modDefines :: Rel Name Entity }
data ExpListEntry = EntExp (EntSpec QName)
| ModuleExp ModName
data EntSpec j = Ent j (Maybe SubSpec)
data SubSpec = AllSubs | Subs [Name]
data Import = Import {
impQualified :: Bool,
impSource :: ModName,
impAs :: ModName,
impHiding :: Bool,
impList :: [EntSpec Name] }