Safe Haskell | Safe-Inferred |
---|
- data Module a n = ModuleCore {
- moduleName :: !ModuleName
- moduleExportKinds :: !(Map n (Kind n))
- moduleExportTypes :: !(Map n (Type n))
- moduleImportKinds :: !(Map n (QualName n, Kind n))
- moduleImportTypes :: !(Map n (QualName n, Type n))
- moduleBody :: !(Exp a n)
- isMainModule :: Module a n -> Bool
- moduleKindEnv :: Ord n => Module a n -> KindEnv n
- moduleTypeEnv :: Ord n => Module a n -> TypeEnv n
- modulesGetBinds :: Ord n => Map n (Type n) -> Env n
- type ModuleMap a n = Map ModuleName (Module a n)
- modulesExportKinds :: Ord n => ModuleMap a n -> KindEnv n -> KindEnv n
- modulesExportTypes :: Ord n => ModuleMap a n -> TypeEnv n -> TypeEnv n
- data QualName n = QualName ModuleName n
- data ModuleName = ModuleName [String]
- isMainModuleName :: ModuleName -> Bool
Modules
A module can be mutually recursive with other modules.
ModuleCore | |
|
isMainModule :: Module a n -> BoolSource
Check if this is the Main
module.
moduleKindEnv :: Ord n => Module a n -> KindEnv nSource
Get the top-level kind environment of a module, from its imported types.
moduleTypeEnv :: Ord n => Module a n -> TypeEnv nSource
Get the top-level type environment of a module, from its imported values.
Module maps
type ModuleMap a n = Map ModuleName (Module a n)Source
Map of module names to modules.
modulesExportKinds :: Ord n => ModuleMap a n -> KindEnv n -> KindEnv nSource
Add the kind environment exported by all these modules to the given one.
modulesExportTypes :: Ord n => ModuleMap a n -> TypeEnv n -> TypeEnv nSource
Add the type environment exported by all these modules to the given one.
Module Names.
A fully qualified name, including the name of the module it is from.
data ModuleName Source
A hierarchical module name.
isMainModuleName :: ModuleName -> BoolSource
Check whether this is the name of the "Main" module.