cryptol-3.1.0: Cryptol: The Language of Cryptography
Copyright(c) 2013-2016 Galois Inc.
LicenseBSD3
Maintainercryptol@galois.com
Stabilityprovisional
Portabilityportable
Safe HaskellSafe
LanguageHaskell2010

Cryptol.ModuleSystem.Interface

Description

 
Synopsis

Documentation

data IfaceG name Source #

The interface repersenting a typecheck top-level module.

Constructors

Iface 

Fields

Instances

Instances details
Generic (IfaceG name) Source # 
Instance details

Defined in Cryptol.ModuleSystem.Interface

Associated Types

type Rep (IfaceG name) :: Type -> Type #

Methods

from :: IfaceG name -> Rep (IfaceG name) x #

to :: Rep (IfaceG name) x -> IfaceG name #

Show name => Show (IfaceG name) Source # 
Instance details

Defined in Cryptol.ModuleSystem.Interface

Methods

showsPrec :: Int -> IfaceG name -> ShowS #

show :: IfaceG name -> String #

showList :: [IfaceG name] -> ShowS #

NFData name => NFData (IfaceG name) Source # 
Instance details

Defined in Cryptol.ModuleSystem.Interface

Methods

rnf :: IfaceG name -> () #

type Rep (IfaceG name) Source # 
Instance details

Defined in Cryptol.ModuleSystem.Interface

type Rep (IfaceG name) = D1 ('MetaData "IfaceG" "Cryptol.ModuleSystem.Interface" "cryptol-3.1.0-276efOa9Q2aIFSEzDdp2Mp" 'False) (C1 ('MetaCons "Iface" 'PrefixI 'True) (S1 ('MetaSel ('Just "ifNames") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (IfaceNames name)) :*: (S1 ('MetaSel ('Just "ifParams") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FunctorParams) :*: S1 ('MetaSel ('Just "ifDefines") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IfaceDecls))))

data IfaceDecls Source #

Declarations in a module. Note that this includes things from nested modules, but not things from nested functors, which are in ifFunctors.

Constructors

IfaceDecls 

Fields

Instances

Instances details
Monoid IfaceDecls Source # 
Instance details

Defined in Cryptol.ModuleSystem.Interface

Semigroup IfaceDecls Source # 
Instance details

Defined in Cryptol.ModuleSystem.Interface

Generic IfaceDecls Source # 
Instance details

Defined in Cryptol.ModuleSystem.Interface

Associated Types

type Rep IfaceDecls :: Type -> Type #

Show IfaceDecls Source # 
Instance details

Defined in Cryptol.ModuleSystem.Interface

NFData IfaceDecls Source # 
Instance details

Defined in Cryptol.ModuleSystem.Interface

Methods

rnf :: IfaceDecls -> () #

type Rep IfaceDecls Source # 
Instance details

Defined in Cryptol.ModuleSystem.Interface

data IfaceDecl Source #

Constructors

IfaceDecl 

Fields

Instances

Instances details
Generic IfaceDecl Source # 
Instance details

Defined in Cryptol.ModuleSystem.Interface

Associated Types

type Rep IfaceDecl :: Type -> Type #

Show IfaceDecl Source # 
Instance details

Defined in Cryptol.ModuleSystem.Interface

NFData IfaceDecl Source # 
Instance details

Defined in Cryptol.ModuleSystem.Interface

Methods

rnf :: IfaceDecl -> () #

type Rep IfaceDecl Source # 
Instance details

Defined in Cryptol.ModuleSystem.Interface

type Rep IfaceDecl = D1 ('MetaData "IfaceDecl" "Cryptol.ModuleSystem.Interface" "cryptol-3.1.0-276efOa9Q2aIFSEzDdp2Mp" 'False) (C1 ('MetaCons "IfaceDecl" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ifDeclName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name) :*: (S1 ('MetaSel ('Just "ifDeclSig") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Schema) :*: S1 ('MetaSel ('Just "ifDeclIsPrim") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool))) :*: ((S1 ('MetaSel ('Just "ifDeclPragmas") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pragma]) :*: S1 ('MetaSel ('Just "ifDeclInfix") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just "ifDeclFixity") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Fixity)) :*: S1 ('MetaSel ('Just "ifDeclDoc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text))))))

data IfaceNames name Source #

Information about the names in a module.

Constructors

IfaceNames 

Fields

Instances

Instances details
Generic (IfaceNames name) Source # 
Instance details

Defined in Cryptol.ModuleSystem.Interface

Associated Types

type Rep (IfaceNames name) :: Type -> Type #

Methods

from :: IfaceNames name -> Rep (IfaceNames name) x #

to :: Rep (IfaceNames name) x -> IfaceNames name #

Show name => Show (IfaceNames name) Source # 
Instance details

Defined in Cryptol.ModuleSystem.Interface

Methods

showsPrec :: Int -> IfaceNames name -> ShowS #

show :: IfaceNames name -> String #

showList :: [IfaceNames name] -> ShowS #

ModuleInstance name => ModuleInstance (IfaceNames name) Source # 
Instance details

Defined in Cryptol.TypeCheck.ModuleInstance

NFData name => NFData (IfaceNames name) Source # 
Instance details

Defined in Cryptol.ModuleSystem.Interface

Methods

rnf :: IfaceNames name -> () #

type Rep (IfaceNames name) Source # 
Instance details

Defined in Cryptol.ModuleSystem.Interface

type Rep (IfaceNames name) = D1 ('MetaData "IfaceNames" "Cryptol.ModuleSystem.Interface" "cryptol-3.1.0-276efOa9Q2aIFSEzDdp2Mp" 'False) (C1 ('MetaCons "IfaceNames" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ifsName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 name) :*: S1 ('MetaSel ('Just "ifsNested") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set Name))) :*: (S1 ('MetaSel ('Just "ifsDefines") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set Name)) :*: (S1 ('MetaSel ('Just "ifsPublic") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set Name)) :*: S1 ('MetaSel ('Just "ifsDoc") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Text))))))

ifModName :: IfaceG name -> name Source #

Access the name of a module.

ifacePrimMap :: Iface -> PrimMap Source #

Produce a PrimMap from an interface.

NOTE: the map will expose both public and private names. NOTE: this is a bit misnamed, as it is used to resolve known names that Cryptol introduces (e.g., during type checking). These names need not be primitives. A better way to do this in the future might be to use original names instead (see #1522).

ifaceForgetName :: IfaceG name -> IfaceG () Source #

Remove the name of a module. This is useful for dealing with collections of modules, as in `Map (ImpName Name) (IfaceG ())`.

ifaceIsFunctor :: IfaceG name -> Bool Source #

Is this interface for a functor.

ifaceOrigNameMap :: IfaceG name -> Map Namespace (Map OrigName Name) Source #

Given an interface computing a map from original names to actual names, grouped by namespace.