purescript-0.13.8: PureScript Programming Language Compiler

Safe HaskellNone
LanguageHaskell2010

Language.PureScript.Sugar.Names

Synopsis

Documentation

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

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

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.

externsEnv :: forall m. (MonadError MultipleErrors m, MonadWriter MultipleErrors m) => Env -> ExternsFile -> m Env Source #

Create an environment from a collection of externs files

primEnv :: Env Source #

Environment which only contains the Prim modules.

data ImportRecord a Source #

The details for an import: the name of the thing that is being imported (x if importing from A), the module that the thing was originally defined in (for re-export resolution), and the import provenance (see below).

data ImportProvenance Source #

Used to track how an import was introduced into scope. This allows us to handle the one-open-import special case that allows a name conflict to become a warning rather than being an unresolvable situation.

data Imports Source #

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

Constructors

Imports 

Fields

Instances
Show Imports Source # 
Instance details

Defined in Language.PureScript.Sugar.Names.Env

data Exports Source #

The exported declarations from a module.

Constructors

Exports 

Fields

Instances
Show Exports Source # 
Instance details

Defined in Language.PureScript.Sugar.Names.Env