cryptol-3.1.0: Cryptol: The Language of Cryptography
Safe HaskellSafe-Inferred
LanguageHaskell2010

Cryptol.TypeCheck.ModuleInstance

Synopsis

Documentation

type Su = (?tVarSu :: Subst, ?nameSu :: Map Name Name) Source #

`?tVarSu` substitutes Types for Types which are module type parameters. `?nameSu` substitutes fresh Names for the functor's Names (in all namespaces).

doNameInst :: (Su, TraverseNames a) => a -> a Source #

Instantiate something that has Names.

doTVarInst :: (Su, TVars a) => a -> a Source #

Instantiate something that has Types.

doInst :: (Su, TVars a, TraverseNames a) => a -> a Source #

Instantiate something that has both Types and Names. Order is important here because '?tVarSu' might insert Names.

class ModuleInstance t where Source #

Methods

moduleInstance :: Su => t -> t Source #

Instances

Instances details
ModuleInstance Name Source # 
Instance details

Defined in Cryptol.TypeCheck.ModuleInstance

ModuleInstance NamingEnv Source # 
Instance details

Defined in Cryptol.TypeCheck.ModuleInstance

ModuleInstance Decl Source # 
Instance details

Defined in Cryptol.TypeCheck.ModuleInstance

ModuleInstance DeclGroup Source # 
Instance details

Defined in Cryptol.TypeCheck.ModuleInstance

ModuleInstance EnumCon Source # 
Instance details

Defined in Cryptol.TypeCheck.ModuleInstance

ModuleInstance ModParam Source # 
Instance details

Defined in Cryptol.TypeCheck.ModuleInstance

ModuleInstance ModParamNames Source # 
Instance details

Defined in Cryptol.TypeCheck.ModuleInstance

ModuleInstance ModTParam Source # 
Instance details

Defined in Cryptol.TypeCheck.ModuleInstance

ModuleInstance ModVParam Source # 
Instance details

Defined in Cryptol.TypeCheck.ModuleInstance

ModuleInstance NominalType Source # 
Instance details

Defined in Cryptol.TypeCheck.ModuleInstance

ModuleInstance NominalTypeDef Source # 
Instance details

Defined in Cryptol.TypeCheck.ModuleInstance

ModuleInstance Schema Source # 
Instance details

Defined in Cryptol.TypeCheck.ModuleInstance

ModuleInstance StructCon Source # 
Instance details

Defined in Cryptol.TypeCheck.ModuleInstance

ModuleInstance TySyn Source # 
Instance details

Defined in Cryptol.TypeCheck.ModuleInstance

ModuleInstance Type Source # 
Instance details

Defined in Cryptol.TypeCheck.ModuleInstance

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

Defined in Cryptol.TypeCheck.ModuleInstance

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

Defined in Cryptol.TypeCheck.ModuleInstance

Methods

moduleInstance :: ImpName name -> ImpName name Source #

ModuleInstance a => ModuleInstance (Located a) Source # 
Instance details

Defined in Cryptol.TypeCheck.ModuleInstance

ModuleInstance (ModuleG name) Source # 
Instance details

Defined in Cryptol.TypeCheck.ModuleInstance

Methods

moduleInstance :: ModuleG name -> ModuleG name Source #

ModuleInstance a => ModuleInstance [a] Source # 
Instance details

Defined in Cryptol.TypeCheck.ModuleInstance

Methods

moduleInstance :: [a] -> [a] Source #