cryptol-2.2.6: Cryptol: The Language of Cryptography

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

Cryptol.TypeCheck.Subst

Description

 

Synopsis

Documentation

data Subst Source

Constructors

S 

listSubst :: [(TVar, Type)] -> Subst Source

Makes a substitution out of a list. WARNING: We do not validate the list in any way, so the caller should ensure that we end up with a valid (e.g., idempotent) substitution.

class FVS t where Source

Methods

fvs :: t -> Set TVar Source

class TVars t where Source

Methods

apSubst Source

Arguments

:: Subst 
-> t 
-> t

replaces free vars

Instances

TVars Decl Source 
TVars DeclGroup Source 
TVars Match Source 
TVars Expr Source 
TVars Type Source 
TVars Schema Source

WARNING: This instance assumes that the quantified variables in the types in the substitution will not get captured by the quantified variables. This is reasonable because there should be no shadowing of quantified variables but, just in case, we make a sanity check and panic if somehow capture did occur.

TVars Module Source 
TVars ConstraintSource Source 
TVars Error Source 
TVars Warning Source 
TVars DelayedCt Source 
TVars HasGoal Source 
TVars Goal Source 
TVars Goals Source 
TVars t => TVars [t] Source 
TVars t => TVars (Maybe t) Source 
TVars a => TVars (TypeMap a) Source 
(TVars s, TVars t) => TVars (s, t) Source 
(Functor m, TVars a) => TVars (List m a) Source 

defaultFreeVar :: TVar -> Type Source

Pick types for unconstrained unification variables.

apSubstTypeMapKeys :: Subst -> TypeMap a -> TypeMap a Source

Apply the substitution to the keys of a type map.