Module Mlsem_app.Config

include module type of struct include Mlsem_system.Config end
val value_restriction : bool Stdlib.ref
val infer_overload : bool Stdlib.ref
val reexplore_failed_domains : bool Stdlib.ref
val normalization_fun : (Mlsem_types.Ty.t -> Mlsem_types.Ty.t) Stdlib.ref
val subst_normalization_fun : (Mlsem_system.Heuristics.tally_context -> Mlsem_types.Subst.t list -> Mlsem_types.Subst.t list) Stdlib.ref
include module type of struct include Mlsem_lang.Config end
type eval_order = Mlsem_lang.Config.eval_order =
  1. | LeftToRight
    (*

    Evaluates arguments left-to-right.

    *)
  2. | RightToLeft
    (*

    Evaluates arguments right-to-left.

    *)
  3. | UnknownOrder
    (*

    Default. Evaluation order is unknown (and/or optional). Once started, evaluation cannot be aborted (e.g. Ternary, Join, Meet).

    *)
  4. | Abortable
    (*

    Evaluation order is unknown (and/or optional). Evaluation can be aborted (e.g. Voidify, Try).

    *)
val void_ty : Mlsem_types.Ty.t Stdlib.ref
val app_eval_order : eval_order Stdlib.ref
val tuple_eval_order : eval_order Stdlib.ref
val record_eval_order : eval_order Stdlib.ref
val cons_eval_order : eval_order Stdlib.ref
val ccustom_eval_order : (string, eval_order) Stdlib.Hashtbl.t
type narrowing =
  1. | NoNarrowing
  2. | DirectNarrowing
  3. | PartitionNarrowing
  4. | BothNarrowing
val type_narrowing : narrowing Stdlib.ref
val allow_implicit_downcast : bool Stdlib.ref
val save_all : unit -> unit
val restore_all : unit -> unit