Copyright | (c) 2013-2016 Galois Inc. |
---|---|
License | BSD3 |
Maintainer | cryptol@galois.com |
Stability | provisional |
Portability | portable |
Safe Haskell | Safe |
Language | Haskell2010 |
Synopsis
- data GenEvalEnv sym = EvalEnv {}
- ppEnv :: Backend sym => sym -> PPOpts -> GenEvalEnv sym -> SEval sym Doc
- emptyEnv :: GenEvalEnv sym
- bindVar :: Backend sym => sym -> Name -> SEval sym (GenValue sym) -> GenEvalEnv sym -> SEval sym (GenEvalEnv sym)
- bindVarDirect :: Backend sym => Name -> Prim sym -> GenEvalEnv sym -> GenEvalEnv sym
- lookupVar :: Name -> GenEvalEnv sym -> Maybe (Either (Prim sym) (SEval sym (GenValue sym)))
- bindType :: TVar -> Either Nat' TValue -> GenEvalEnv sym -> GenEvalEnv sym
- lookupType :: TVar -> GenEvalEnv sym -> Maybe (Either Nat' TValue)
Documentation
data GenEvalEnv sym Source #
Instances
emptyEnv :: GenEvalEnv sym Source #
Evaluation environment with no bindings
bindVar :: Backend sym => sym -> Name -> SEval sym (GenValue sym) -> GenEvalEnv sym -> SEval sym (GenEvalEnv sym) Source #
Bind a variable in the evaluation environment.
bindVarDirect :: Backend sym => Name -> Prim sym -> GenEvalEnv sym -> GenEvalEnv sym Source #
Bind a variable to a value in the evaluation environment, without creating a thunk.
lookupVar :: Name -> GenEvalEnv sym -> Maybe (Either (Prim sym) (SEval sym (GenValue sym))) Source #
Lookup a variable in the environment.
bindType :: TVar -> Either Nat' TValue -> GenEvalEnv sym -> GenEvalEnv sym Source #
Bind a type variable of kind *.
lookupType :: TVar -> GenEvalEnv sym -> Maybe (Either Nat' TValue) Source #
Lookup a type variable.