cryptol-2.2.2: Cryptol: The Language of Cryptography

Copyright(c) 2013-2015 Galois, Inc.
LicenseBSD3
Maintainercryptol@galois.com
Stabilityprovisional
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell98

Cryptol.ModuleSystem.Env

Description

 

Synopsis

Documentation

focusModule :: ModName -> ModuleEnv -> Maybe ModuleEnv Source

Try to focus a loaded module in the module environment.

loadedModules :: ModuleEnv -> [Module] Source

Get a list of all the loaded modules. Each module in the resulting list depends only on other modules that precede it.

focusedEnv :: ModuleEnv -> IfaceDecls Source

Produce an ifaceDecls that represents the focused environment of the module system.

This could really do with some better error handling, just returning mempty when one of the imports fails isn't really desirable.

qualifiedEnv :: ModuleEnv -> IfaceDecls Source

Produce an ifaceDecls that represents the internal environment of the module, used for typechecking.

newtype LoadedModules Source

Invariant: All the dependencies of any module m must precede m in the list.

Constructors

LoadedModules 

data DynamicEnv Source

Extra information we need to carry around to dynamically extend an environment outside the context of a single module. Particularly useful when dealing with interactive declarations as in :let or it.

Constructors

DEnv 

Instances

deIfaceDecls :: DynamicEnv -> IfaceDecls Source

Build IfaceDecls that correspond to all of the bindings in the dynamic environment.

XXX: if we ever add type synonyms or newtypes at the REPL, revisit this.