purescript-0.15.6: PureScript Programming Language Compiler
Safe HaskellSafe-Inferred
LanguageHaskell2010

Language.PureScript.Sugar.Names

Synopsis

Documentation

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

Replaces all local names with qualified names.

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

Instances details
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

Instances details
Show Exports Source # 
Instance details

Defined in Language.PureScript.Sugar.Names.Env