sig
module Evalenv :
sig
type constraintenv = Constraint.Constraint.cexp list AstUtils.VarMap.t
type typeconstraint =
string ->
Ast.Ast.relation ->
Evalenv.Evalenv.constraintenv -> Evalenv.Evalenv.constraintenv
type evalenv = {
typeconstraints : Evalenv.Evalenv.typeconstraint MapUtils.StringMap.t;
tyenv : Ast.Ast.typerep MapUtils.StringMap.t;
tydefenv : Ast.Ast.userty MapUtils.StringMap.t;
functions : Ast.Ast.fundecl MapUtils.StringMap.t;
globalbindings : Ast.Ast.exp AstUtils.VarMap.t;
localbindings : Ast.Ast.exp AstUtils.VarMap.t;
constraintbindings : Evalenv.Evalenv.constraintenv;
}
val default_tyconstraint :
string ->
Ast.Ast.relation ->
Evalenv.Evalenv.constraintenv -> Evalenv.Evalenv.constraintenv
val empty_evalenv : Evalenv.Evalenv.evalenv
val addFunDecl :
Evalenv.Evalenv.evalenv -> Ast.Ast.fundecl -> Evalenv.Evalenv.evalenv
val lookupFunDecl :
Evalenv.Evalenv.evalenv -> string -> Ast.Ast.fundecl option
val bindTypeGlobalEnv :
Evalenv.Evalenv.evalenv ->
string -> Ast.Ast.typerep -> Evalenv.Evalenv.evalenv
val addTypeDecl :
Evalenv.Evalenv.evalenv ->
Ast.Ast.userty ->
Ast.Ast.constraintbody list -> Evalenv.Evalenv.evalenv
val lookupTypeDeclByData :
Evalenv.Evalenv.evalenv -> string -> Ast.Ast.userty option
val lookupType :
Evalenv.Evalenv.evalenv -> Ast.Ast.var -> Ast.Ast.typerep option
val lookupTypeConstraints :
Evalenv.Evalenv.evalenv ->
string -> Evalenv.Evalenv.typeconstraint option
val addConstraintGlobalEnv :
Evalenv.Evalenv.evalenv ->
Ast.Ast.var -> Constraint.Constraint.cexp -> Evalenv.Evalenv.evalenv
val addConstraintListGlobalEnv :
Evalenv.Evalenv.evalenv ->
Ast.Ast.var ->
Constraint.Constraint.cexp list -> Evalenv.Evalenv.evalenv
val lookupConstraintsEnv :
Evalenv.Evalenv.evalenv ->
Ast.Ast.var -> Constraint.Constraint.cexp list
val lookupValueEnv :
Evalenv.Evalenv.evalenv -> Ast.Ast.var -> Ast.Ast.exp option
val bindValueGlobalEnv :
Evalenv.Evalenv.evalenv ->
Ast.Ast.var -> Ast.Ast.exp -> Evalenv.Evalenv.evalenv
val bindValueLocalEnv :
Evalenv.Evalenv.evalenv ->
Ast.Ast.var -> Ast.Ast.exp -> Evalenv.Evalenv.evalenv
val lookupRelationGlobalEnv :
Evalenv.Evalenv.evalenv -> Ast.Ast.var -> Ast.Ast.relation option
val addConstraint :
Evalenv.Evalenv.evalenv ->
string -> Ast.Ast.constraintbody list -> Evalenv.Evalenv.evalenv
end
end