Mlsem_types.BuilderRaised by every function below that elaborates a type expression, for any way in which the expression can be ill-formed: an undefined or misapplied type name, a non-regular recursive definition, a type operator applied to something it cannot inspect, a dyn where none is allowed. The payload is a message meant for the user.
val empty_tenv : type_envval empty_vtenv : var_type_envval empty_benv : benvval type_names : benv -> string listval type_base_to_typ : TyExpr.base -> Ty.tElaborates a type expression into a static type. With ~allow_gradual:true the expression may contain dyn occurrences, as long as none of them is in an invariant position.
Elaborates a type expression into a gradual type, dyn occurrences becoming the bounds of the interval.
Defines a group of mutually recursive type aliases.
The enum of that name, defining it if it does not exist yet.
The tag of that name, defining it if it does not exist yet.
val is_test_type : Ty.t -> bool