Typetexp.TyVarEnv
val make_poly_univars : string list -> poly_univars
remember that a list of strings connotes univars; this must always be paired with a check_poly_univars
.
val check_poly_univars :
Env.t ->
Location.t ->
poly_univars ->
Types.type_expr list
Verify that the given univars are universally quantified, and return the list of variables. The type in which the univars are used must be generalised
val instance_poly_univars :
Env.t ->
Location.t ->
poly_univars ->
Types.type_expr list
Same as check_poly_univars
, but instantiates the resulting type scheme (i.e. variables become Tvar rather than Tunivar)