Safe Haskell | None |
---|---|
Language | Haskell98 |
- data Imports = Imports {
- importedTypes :: Map (Qualified (ProperName TypeName)) [(Qualified (ProperName TypeName), ModuleName)]
- importedDataConstructors :: Map (Qualified (ProperName ConstructorName)) [(Qualified (ProperName ConstructorName), ModuleName)]
- importedTypeClasses :: Map (Qualified (ProperName ClassName)) [(Qualified (ProperName ClassName), ModuleName)]
- importedValues :: Map (Qualified Ident) [(Qualified Ident, ModuleName)]
- importedModules :: Set ModuleName
- importedVirtualModules :: Set ModuleName
- nullImports :: Imports
- data Exports = Exports {
- exportedTypes :: [((ProperName TypeName, [ProperName ConstructorName]), ModuleName)]
- exportedTypeClasses :: [(ProperName ClassName, ModuleName)]
- exportedValues :: [(Ident, ModuleName)]
- nullExports :: Exports
- type Env = Map ModuleName (SourceSpan, Imports, Exports)
- primEnv :: Env
- envModuleSourceSpan :: (SourceSpan, a, b) -> SourceSpan
- envModuleImports :: (a, Imports, b) -> Imports
- envModuleExports :: (a, b, Exports) -> Exports
- exportType :: MonadError MultipleErrors m => Exports -> ProperName TypeName -> [ProperName ConstructorName] -> ModuleName -> m Exports
- exportTypeClass :: MonadError MultipleErrors m => Exports -> ProperName ClassName -> ModuleName -> m Exports
- exportValue :: MonadError MultipleErrors m => Exports -> Ident -> ModuleName -> m Exports
- getExports :: MonadError MultipleErrors m => Env -> ModuleName -> m Exports
- checkImportConflicts :: forall m a. (MonadError MultipleErrors m, Ord a) => (a -> String) -> [(Qualified a, ModuleName)] -> m ()
Documentation
The imported declarations for a module, including the module's own members.
Imports | |
|
An empty Imports
value.
The exported declarations from a module.
Exports | |
|
An empty Exports
value.
type Env = Map ModuleName (SourceSpan, Imports, Exports) Source
The imports and exports for a collection of modules. The SourceSpan
is used
to store the source location of the module with a given name, used to provide
useful information when there is a duplicate module definition.
envModuleSourceSpan :: (SourceSpan, a, b) -> SourceSpan Source
Extracts the SourceSpan
from an Env
value.
exportType :: MonadError MultipleErrors m => Exports -> ProperName TypeName -> [ProperName ConstructorName] -> ModuleName -> m Exports Source
Safely adds a type and its data constructors to some exports, returning an error if a conflict occurs.
exportTypeClass :: MonadError MultipleErrors m => Exports -> ProperName ClassName -> ModuleName -> m Exports Source
Safely adds a class to some exports, returning an error if a conflict occurs.
exportValue :: MonadError MultipleErrors m => Exports -> Ident -> ModuleName -> m Exports Source
Safely adds a value to some exports, returning an error if a conflict occurs.
getExports :: MonadError MultipleErrors m => Env -> ModuleName -> m Exports Source
checkImportConflicts :: forall m a. (MonadError MultipleErrors m, Ord a) => (a -> String) -> [(Qualified a, ModuleName)] -> m () Source
When reading a value from the imports, check that there are no conflicts in scope.