Module Ast_helper.Typ

Type expressions

val any : ?loc:loc -> ?attrs:attrs -> Parsetree.jkind_annotation option -> Parsetree.core_type
val var : ?loc:loc -> ?attrs:attrs -> string -> Parsetree.jkind_annotation option -> Parsetree.core_type
val tuple : ?loc:loc -> ?attrs:attrs -> (string option * Parsetree.core_type) list -> Parsetree.core_type
val unboxed_tuple : ?loc:loc -> ?attrs:attrs -> (string option * Parsetree.core_type) list -> Parsetree.core_type
val constr : ?loc:loc -> ?attrs:attrs -> lid -> Parsetree.core_type list -> Parsetree.core_type
val object_ : ?loc:loc -> ?attrs:attrs -> Parsetree.object_field list -> Asttypes.closed_flag -> Parsetree.core_type
val class_ : ?loc:loc -> ?attrs:attrs -> lid -> Parsetree.core_type list -> Parsetree.core_type
val alias : ?loc:loc -> ?attrs:attrs -> Parsetree.core_type -> string with_loc option -> Parsetree.jkind_annotation option -> Parsetree.core_type
val variant : ?loc:loc -> ?attrs:attrs -> Parsetree.row_field list -> Asttypes.closed_flag -> Asttypes.label list option -> Parsetree.core_type
val poly : ?loc:loc -> ?attrs:attrs -> (str * Parsetree.jkind_annotation option) list -> Parsetree.core_type -> Parsetree.core_type
val package : ?loc:loc -> ?attrs:attrs -> lid -> (lid * Parsetree.core_type) list -> Parsetree.core_type
val open_ : ?loc:loc -> ?attrs:attrs -> lid -> Parsetree.core_type -> Parsetree.core_type
val quote : ?loc:loc -> ?attrs:attrs -> Parsetree.core_type -> Parsetree.core_type
val splice : ?loc:loc -> ?attrs:attrs -> Parsetree.core_type -> Parsetree.core_type
val of_kind : ?loc:loc -> ?attrs:attrs -> Parsetree.jkind_annotation -> Parsetree.core_type
val extension : ?loc:loc -> ?attrs:attrs -> Parsetree.extension -> Parsetree.core_type
val varify_constructors : str list -> Parsetree.core_type -> Parsetree.core_type

varify_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. Used to translate type a. a -> a to 'a. 'a -> 'a during parsing.

  • since 4.05