free-compiler-0.3.0.0: A Haskell to Coq compiler.

Safe HaskellNone
LanguageHaskell2010

FreeC.Environment.ModuleInterface

Description

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

Documentation

data ModuleInterface Source #

Data type that contains the information of a module environment that is exported and imported.

Constructors

ModuleInterface 

Fields

Instances
Show ModuleInterface Source # 
Instance details

Defined in FreeC.Environment.ModuleInterface

FromJSON ModuleInterface

Restores a ModuleInterface from the configuration file.

Instance details

Defined in FreeC.Environment.ModuleInterface.Decoder

Methods

parseJSON :: Value -> Parser ModuleInterface

parseJSONList :: Value -> Parser [ModuleInterface]

ToJSON ModuleInterface

Serializes a ModuleInterface.

Instance details

Defined in FreeC.Environment.ModuleInterface.Encoder

Methods

toJSON :: ModuleInterface -> Value

toEncoding :: ModuleInterface -> Encoding

toJSONList :: [ModuleInterface] -> Value

toEncodingList :: [ModuleInterface] -> Encoding