Module Mlsem_types.Builder

exception TypeDefinitionError of string
type type_env
type var_type_env
val empty_tenv : type_env
val empty_vtenv : var_type_env
type benv = {
  1. tenv : type_env;
  2. vtenv : var_type_env;
}
val empty_benv : benv
val type_base_to_typ : TyExpr.base -> Ty.t
val type_expr_to_typ : benv -> TyExpr.t -> Ty.t * benv
val type_exprs_to_typs : benv -> TyExpr.t list -> Ty.t list * benv
val type_expr_to_gty : benv -> TyExpr.t -> GTy.t * benv
val type_exprs_to_gtys : benv -> TyExpr.t list -> GTy.t list * benv
val define_abstract : benv -> string -> int -> benv
val define_aliases : benv -> (string * string list * TyExpr.t) list -> benv
val get_enum : benv -> string -> Enum.t * benv
val get_tag : benv -> string -> Tag.t * benv
val is_test_type : Ty.t -> bool