Type expressions
val mk : ?loc:loc -> ?attrs:attrs -> Parsetree.core_type_desc -> Parsetree.core_typeval attr : Parsetree.core_type -> Parsetree.attribute -> Parsetree.core_typeval any : ?loc:loc -> ?attrs:attrs -> unit -> Parsetree.core_typeval var : ?loc:loc -> ?attrs:attrs -> string -> Parsetree.core_typeval arrow : ?loc:loc -> ?attrs:attrs -> Asttypes.arg_label -> Parsetree.core_type -> Parsetree.core_type -> Parsetree.core_typeval tuple : ?loc:loc -> ?attrs:attrs -> Parsetree.core_type list -> Parsetree.core_typeval constr : ?loc:loc -> ?attrs:attrs -> lid -> Parsetree.core_type list -> Parsetree.core_typeval object_ : ?loc:loc -> ?attrs:attrs -> (str * Parsetree.attributes * Parsetree.core_type) list -> Asttypes.closed_flag -> Parsetree.core_typeval class_ : ?loc:loc -> ?attrs:attrs -> lid -> Parsetree.core_type list -> Parsetree.core_typeval alias : ?loc:loc -> ?attrs:attrs -> Parsetree.core_type -> string -> Parsetree.core_typeval variant : ?loc:loc -> ?attrs:attrs -> Parsetree.row_field list -> Asttypes.closed_flag -> Asttypes.label list option -> Parsetree.core_typeval poly : ?loc:loc -> ?attrs:attrs -> str list -> Parsetree.core_type -> Parsetree.core_typeval package : ?loc:loc -> ?attrs:attrs -> lid -> (lid * Parsetree.core_type) list -> Parsetree.core_typeval extension : ?loc:loc -> ?attrs:attrs -> Parsetree.extension -> Parsetree.core_typeval force_poly : Parsetree.core_type -> Parsetree.core_typeval varify_constructors : str list -> Parsetree.core_type -> Parsetree.core_typevarify_constructors newtypes te is type expression te, of which
any of nullary type constructor tc is replaced by type variable of
the same name, if tc's name appears in newtypes.
Raise Syntaxerr.Variable_in_scope if any type variable inside te
appears in newtypes.