Safe Haskell | None |
---|---|
Language | Haskell2010 |
This module contains the data type that is used to represent module interfaces.
A module interface contains all environment entries that are defined in the module and all entries of the interfaces of imported modules. The entries which are actually exported by the module (and thus visible to modules that import it) are also recorded in the module interface. Entries which are part of the module interface but not actually exported by the module are called hidden entries.
The module interface must contain hidden entries such that type synonyms can be expanded properly. The entry of a type synonym can contain type constructors which were in scope when the type synonym was declared but don't have to be in scope when the imported type synonym is used.
Synopsis
- data ModuleInterface = ModuleInterface {
- interfaceModName :: ModName
- interfaceLibName :: ModuleIdent
- interfaceAgdaLibName :: Name
- interfaceExports :: Set ScopedName
- interfaceEntries :: Set EnvEntry
Documentation
data ModuleInterface Source #
Data type that contains the information of a module environment that is exported and imported.
ModuleInterface | |
|
Instances
Show ModuleInterface Source # | |
Defined in FreeC.Environment.ModuleInterface | |
FromJSON ModuleInterface | Restores a |
Defined in FreeC.Environment.ModuleInterface.Decoder parseJSON :: Value -> Parser ModuleInterface parseJSONList :: Value -> Parser [ModuleInterface] | |
ToJSON ModuleInterface | Serializes a |
Defined in FreeC.Environment.ModuleInterface.Encoder toJSON :: ModuleInterface -> Value toEncoding :: ModuleInterface -> Encoding toJSONList :: [ModuleInterface] -> Value toEncodingList :: [ModuleInterface] -> Encoding |