purescript-0.8.0.0: PureScript Programming Language Compiler

Safe HaskellNone
LanguageHaskell98

Language.PureScript.Sugar.Names

Synopsis

Documentation

desugarImports :: forall m. (Applicative m, MonadError MultipleErrors m, MonadWriter MultipleErrors m) => [ExternsFile] -> [Module] -> m [Module] Source

Replaces all local names with qualified names within a list of modules. The modules should be topologically sorted beforehand.

desugarImportsWithEnv :: forall m. (Applicative m, MonadError MultipleErrors m, MonadWriter MultipleErrors m) => [ExternsFile] -> [Module] -> m (Env, [Module]) Source

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.

data Imports Source

The imported declarations for a module, including the module's own members.

Constructors

Imports 

Fields

importedTypes :: Map (Qualified (ProperName TypeName)) [(Qualified (ProperName TypeName), ModuleName)]

Local names for types within a module mapped to to their qualified names

importedDataConstructors :: Map (Qualified (ProperName ConstructorName)) [(Qualified (ProperName ConstructorName), ModuleName)]

Local names for data constructors within a module mapped to to their qualified names

importedTypeClasses :: Map (Qualified (ProperName ClassName)) [(Qualified (ProperName ClassName), ModuleName)]

Local names for classes within a module mapped to to their qualified names

importedValues :: Map (Qualified Ident) [(Qualified Ident, ModuleName)]

Local names for values within a module mapped to to their qualified names

importedModules :: Set ModuleName

The modules that have been imported into the current scope.

importedVirtualModules :: Set ModuleName

The names of "virtual" modules that come into existence when "import as" is used.

data Exports Source

The exported declarations from a module.

Constructors

Exports 

Fields

exportedTypes :: [((ProperName TypeName, [ProperName ConstructorName]), ModuleName)]

The types exported from each module along with the module they originally came from.

exportedTypeClasses :: [(ProperName ClassName, ModuleName)]

The classes exported from each module along with the module they originally came from.

exportedValues :: [(Ident, ModuleName)]

The values exported from each module along with the module they originally came from.