Module TypeInference.Ctx
val create : ?def_as_rewrite:bool -> ?default:type_ -> ?on_var:[ `Default | `Infer ] -> ?on_undef:[ `Warn | `Fail | `Guess ] -> ?on_shadow:[ `Warn | `Ignore ] -> implicit_ty_args:bool -> unit -> tNew context with a signature and default types.
- parameter default
 which types are inferred by default (if not provided then
type_ermwill be used)
- parameter def_as_rewrite
 if true, definitions will be treated like rewrite rules
- parameter on_undef
 behavior when an undefined identifier is met
- parameter is_tptp
 if true, interpret some constants as in TPTP
- parameter on_var
 behavior when a variable without type annotation is met
val exit_scope : t -> unitExit the current scope (formula, clause), meaning that all free variables' types are forgotten. Some free variables are bound to the
defaulttype provided at creation of the context. Some ree variables will be generalized, i.e., kept as (free) variables
val declare : ?loc:loc -> t -> ID.t -> type_ -> unitDeclare the type of a symbol, possibly shadowing a previous version
val with_var : t -> type_ Var.t -> f:(unit -> 'a) -> 'aExecute a function f with an additional declared variable