Mlsem_types.TySchemeType schemes: a gradual type together with the variables it quantifies universally. The other variables of the type are free, i.e. monomorphic.
mk vs ty quantifies the variables of vs that actually occur in ty.
mk_poly_except mono ty quantifies every variable of ty except those of mono. This is how a definition is generalized against its environment.
The quantified variables and the type, as they are stored.
An instance of the scheme in which the quantified variables have been renamed to fresh KInfer ones, together with the remaining (monomorphic) variables. This is how a scheme is used at an occurrence.
val fv : t -> Mlsem_types__.Tvar.MVarSet.tThe free, i.e. non-quantified, variables.
Substitutes the free variables only; the quantified ones are left alone.
A syntactic approximation of scheme subsumption: it checks that the right-hand side does not quantify a variable that is free on the left, and then compares the two bodies with GTy.leq. It does not look for an instantiation, so it may answer false for schemes that are in fact related.
Replaces the quantified variables occurring only positively by empty and only negatively by any, yielding the smallest instance of the scheme. Used to simplify a scheme without losing precision on the variables that occur in both polarities.
Dual of bot_instance: the largest instance.
val pp : Stdlib.Format.formatter -> t -> unitval pp' : Mlsem_types__.Tvar.Subst.t -> Stdlib.Format.formatter -> t -> unitval pp_short : Stdlib.Format.formatter -> t -> unitPrints with the quantified variables renamed to short names (a, b, …).