module Located : sig ... endval attribute : loc:Warnings.loc -> name:string Ocaml_common.Location.loc -> payload:Migrate_parsetree.Ast_408.Parsetree.payload -> Migrate_parsetree.Ast_408.Parsetree.attributeval binding_op : loc:Warnings.loc -> op:string Ocaml_common.Location.loc -> pat:Migrate_parsetree.Ast_408.Parsetree.pattern -> exp:Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.binding_opval case : lhs:Migrate_parsetree.Ast_408.Parsetree.pattern -> guard:Migrate_parsetree.Ast_408.Parsetree.expression option -> rhs:Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.caseval pcl_constr : loc:Warnings.loc -> Ocaml_common.Longident.t Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.core_type list -> Migrate_parsetree.Ast_408.Parsetree.class_exprval pcl_structure : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.class_structure -> Migrate_parsetree.Ast_408.Parsetree.class_exprval pcl_fun : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Asttypes.arg_label -> Migrate_parsetree.Ast_408.Parsetree.expression option -> Migrate_parsetree.Ast_408.Parsetree.pattern -> Migrate_parsetree.Ast_408.Parsetree.class_expr -> Migrate_parsetree.Ast_408.Parsetree.class_exprval pcl_apply : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.class_expr -> (Migrate_parsetree.Ast_408.Asttypes.arg_label * Migrate_parsetree.Ast_408.Parsetree.expression) list -> Migrate_parsetree.Ast_408.Parsetree.class_exprval pcl_let : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Asttypes.rec_flag -> Migrate_parsetree.Ast_408.Parsetree.value_binding list -> Migrate_parsetree.Ast_408.Parsetree.class_expr -> Migrate_parsetree.Ast_408.Parsetree.class_exprval pcl_constraint : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.class_expr -> Migrate_parsetree.Ast_408.Parsetree.class_type -> Migrate_parsetree.Ast_408.Parsetree.class_exprval pcl_extension : loc:Warnings.loc -> (string Ocaml_common.Location.loc * Migrate_parsetree.Ast_408.Parsetree.payload) -> Migrate_parsetree.Ast_408.Parsetree.class_exprval pcl_open : loc:Warnings.loc -> Ocaml_common.Longident.t Ocaml_common.Location.loc Migrate_parsetree.Ast_408.Parsetree.open_infos -> Migrate_parsetree.Ast_408.Parsetree.class_expr -> Migrate_parsetree.Ast_408.Parsetree.class_exprval pcf_inherit : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Asttypes.override_flag -> Migrate_parsetree.Ast_408.Parsetree.class_expr -> string Ocaml_common.Location.loc option -> Migrate_parsetree.Ast_408.Parsetree.class_fieldval pcf_val : loc:Warnings.loc -> (string Ocaml_common.Location.loc * Migrate_parsetree.Ast_408.Asttypes.mutable_flag * Migrate_parsetree.Ast_408.Parsetree.class_field_kind) -> Migrate_parsetree.Ast_408.Parsetree.class_fieldval pcf_method : loc:Warnings.loc -> (string Ocaml_common.Location.loc * Migrate_parsetree.Ast_408.Asttypes.private_flag * Migrate_parsetree.Ast_408.Parsetree.class_field_kind) -> Migrate_parsetree.Ast_408.Parsetree.class_fieldval pcf_constraint : loc:Warnings.loc -> (Migrate_parsetree.Ast_408.Parsetree.core_type * Migrate_parsetree.Ast_408.Parsetree.core_type) -> Migrate_parsetree.Ast_408.Parsetree.class_fieldval pcf_initializer : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.class_fieldval pcf_attribute : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.attribute -> Migrate_parsetree.Ast_408.Parsetree.class_fieldval pcf_extension : loc:Warnings.loc -> (string Ocaml_common.Location.loc * Migrate_parsetree.Ast_408.Parsetree.payload) -> Migrate_parsetree.Ast_408.Parsetree.class_fieldval class_infos : loc:Warnings.loc -> virt:Migrate_parsetree.Ast_408.Asttypes.virtual_flag -> params:(Migrate_parsetree.Ast_408.Parsetree.core_type * Migrate_parsetree.Ast_408.Asttypes.variance) list -> name:string Ocaml_common.Location.loc -> expr:'a -> 'a Migrate_parsetree.Ast_408.Parsetree.class_infosval class_signature : self:Migrate_parsetree.Ast_408.Parsetree.core_type -> fields:Migrate_parsetree.Ast_408.Parsetree.class_type_field list -> Migrate_parsetree.Ast_408.Parsetree.class_signatureval class_structure : self:Migrate_parsetree.Ast_408.Parsetree.pattern -> fields:Migrate_parsetree.Ast_408.Parsetree.class_field list -> Migrate_parsetree.Ast_408.Parsetree.class_structureval pcty_constr : loc:Warnings.loc -> Ocaml_common.Longident.t Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.core_type list -> Migrate_parsetree.Ast_408.Parsetree.class_typeval pcty_signature : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.class_signature -> Migrate_parsetree.Ast_408.Parsetree.class_typeval pcty_arrow : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Asttypes.arg_label -> Migrate_parsetree.Ast_408.Parsetree.core_type -> Migrate_parsetree.Ast_408.Parsetree.class_type -> Migrate_parsetree.Ast_408.Parsetree.class_typeval pcty_extension : loc:Warnings.loc -> (string Ocaml_common.Location.loc * Migrate_parsetree.Ast_408.Parsetree.payload) -> Migrate_parsetree.Ast_408.Parsetree.class_typeval pcty_open : loc:Warnings.loc -> Ocaml_common.Longident.t Ocaml_common.Location.loc Migrate_parsetree.Ast_408.Parsetree.open_infos -> Migrate_parsetree.Ast_408.Parsetree.class_type -> Migrate_parsetree.Ast_408.Parsetree.class_typeval pctf_inherit : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.class_type -> Migrate_parsetree.Ast_408.Parsetree.class_type_fieldval pctf_val : loc:Warnings.loc -> (string Ocaml_common.Location.loc * Migrate_parsetree.Ast_408.Asttypes.mutable_flag * Migrate_parsetree.Ast_408.Asttypes.virtual_flag * Migrate_parsetree.Ast_408.Parsetree.core_type) -> Migrate_parsetree.Ast_408.Parsetree.class_type_fieldval pctf_method : loc:Warnings.loc -> (string Ocaml_common.Location.loc * Migrate_parsetree.Ast_408.Asttypes.private_flag * Migrate_parsetree.Ast_408.Asttypes.virtual_flag * Migrate_parsetree.Ast_408.Parsetree.core_type) -> Migrate_parsetree.Ast_408.Parsetree.class_type_fieldval pctf_constraint : loc:Warnings.loc -> (Migrate_parsetree.Ast_408.Parsetree.core_type * Migrate_parsetree.Ast_408.Parsetree.core_type) -> Migrate_parsetree.Ast_408.Parsetree.class_type_fieldval pctf_attribute : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.attribute -> Migrate_parsetree.Ast_408.Parsetree.class_type_fieldval pctf_extension : loc:Warnings.loc -> (string Ocaml_common.Location.loc * Migrate_parsetree.Ast_408.Parsetree.payload) -> Migrate_parsetree.Ast_408.Parsetree.class_type_fieldval constructor_declaration : loc:Warnings.loc -> name:string Ocaml_common.Location.loc -> args:Migrate_parsetree.Ast_408.Parsetree.constructor_arguments -> res:Migrate_parsetree.Ast_408.Parsetree.core_type option -> Migrate_parsetree.Ast_408.Parsetree.constructor_declarationval ptyp_any : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.core_typeval ptyp_var : loc:Warnings.loc -> string -> Migrate_parsetree.Ast_408.Parsetree.core_typeval ptyp_arrow : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Asttypes.arg_label -> Migrate_parsetree.Ast_408.Parsetree.core_type -> Migrate_parsetree.Ast_408.Parsetree.core_type -> Migrate_parsetree.Ast_408.Parsetree.core_typeval ptyp_tuple : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.core_type list -> Migrate_parsetree.Ast_408.Parsetree.core_typeval ptyp_constr : loc:Warnings.loc -> Ocaml_common.Longident.t Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.core_type list -> Migrate_parsetree.Ast_408.Parsetree.core_typeval ptyp_object : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.object_field list -> Migrate_parsetree.Ast_408.Asttypes.closed_flag -> Migrate_parsetree.Ast_408.Parsetree.core_typeval ptyp_class : loc:Warnings.loc -> Ocaml_common.Longident.t Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.core_type list -> Migrate_parsetree.Ast_408.Parsetree.core_typeval ptyp_alias : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.core_type -> string -> Migrate_parsetree.Ast_408.Parsetree.core_typeval ptyp_variant : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.row_field list -> Migrate_parsetree.Ast_408.Asttypes.closed_flag -> string list option -> Migrate_parsetree.Ast_408.Parsetree.core_typeval ptyp_poly : loc:Warnings.loc -> string Ocaml_common.Location.loc list -> Migrate_parsetree.Ast_408.Parsetree.core_type -> Migrate_parsetree.Ast_408.Parsetree.core_typeval ptyp_package : loc:Warnings.loc -> (Ocaml_common.Longident.t Ocaml_common.Location.loc * (Ocaml_common.Longident.t Ocaml_common.Location.loc * Migrate_parsetree.Ast_408.Parsetree.core_type) list) -> Migrate_parsetree.Ast_408.Parsetree.core_typeval ptyp_extension : loc:Warnings.loc -> (string Ocaml_common.Location.loc * Migrate_parsetree.Ast_408.Parsetree.payload) -> Migrate_parsetree.Ast_408.Parsetree.core_typeval pdir_string : loc:Warnings.loc -> string -> Migrate_parsetree.Ast_408.Parsetree.directive_argumentval pdir_int : loc:Warnings.loc -> string -> char option -> Migrate_parsetree.Ast_408.Parsetree.directive_argumentval pdir_ident : loc:Warnings.loc -> Ocaml_common.Longident.t -> Migrate_parsetree.Ast_408.Parsetree.directive_argumentval pdir_bool : loc:Warnings.loc -> bool -> Migrate_parsetree.Ast_408.Parsetree.directive_argumentval pexp_ident : loc:Warnings.loc -> Ocaml_common.Longident.t Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_constant : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.constant -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_let : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Asttypes.rec_flag -> Migrate_parsetree.Ast_408.Parsetree.value_binding list -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_function : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.case list -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_fun : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Asttypes.arg_label -> Migrate_parsetree.Ast_408.Parsetree.expression option -> Migrate_parsetree.Ast_408.Parsetree.pattern -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_apply : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.expression -> (Migrate_parsetree.Ast_408.Asttypes.arg_label * Migrate_parsetree.Ast_408.Parsetree.expression) list -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_match : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.case list -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_try : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.case list -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_tuple : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.expression list -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_construct : loc:Warnings.loc -> Ocaml_common.Longident.t Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.expression option -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_variant : loc:Warnings.loc -> string -> Migrate_parsetree.Ast_408.Parsetree.expression option -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_record : loc:Warnings.loc -> (Ocaml_common.Longident.t Ocaml_common.Location.loc * Migrate_parsetree.Ast_408.Parsetree.expression) list -> Migrate_parsetree.Ast_408.Parsetree.expression option -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_field : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.expression -> Ocaml_common.Longident.t Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_setfield : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.expression -> Ocaml_common.Longident.t Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_array : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.expression list -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_ifthenelse : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.expression option -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_sequence : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_while : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_for : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.pattern -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Asttypes.direction_flag -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_constraint : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.core_type -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_coerce : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.core_type option -> Migrate_parsetree.Ast_408.Parsetree.core_type -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_send : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.expression -> string Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_new : loc:Warnings.loc -> Ocaml_common.Longident.t Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_setinstvar : loc:Warnings.loc -> string Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_override : loc:Warnings.loc -> (string Ocaml_common.Location.loc * Migrate_parsetree.Ast_408.Parsetree.expression) list -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_letmodule : loc:Warnings.loc -> string Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.module_expr -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_letexception : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.extension_constructor -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_assert : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_lazy : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_poly : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.core_type option -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_object : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.class_structure -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_newtype : loc:Warnings.loc -> string Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_pack : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.module_expr -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_open : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.module_expr Migrate_parsetree.Ast_408.Parsetree.open_infos -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_letop : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.letop -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_extension : loc:Warnings.loc -> (string Ocaml_common.Location.loc * Migrate_parsetree.Ast_408.Parsetree.payload) -> Migrate_parsetree.Ast_408.Parsetree.expressionval pexp_unreachable : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.expressionval extension_constructor : loc:Warnings.loc -> name:string Ocaml_common.Location.loc -> kind:Migrate_parsetree.Ast_408.Parsetree.extension_constructor_kind -> Migrate_parsetree.Ast_408.Parsetree.extension_constructorval include_infos : loc:Warnings.loc -> 'a -> 'a Migrate_parsetree.Ast_408.Parsetree.include_infosval label_declaration : loc:Warnings.loc -> name:string Ocaml_common.Location.loc -> mutable_:Migrate_parsetree.Ast_408.Asttypes.mutable_flag -> type_:Migrate_parsetree.Ast_408.Parsetree.core_type -> Migrate_parsetree.Ast_408.Parsetree.label_declarationval letop : let_:Migrate_parsetree.Ast_408.Parsetree.binding_op -> ands:Migrate_parsetree.Ast_408.Parsetree.binding_op list -> body:Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.letopval location : start:Stdlib.Lexing.position -> end_:Stdlib.Lexing.position -> ghost:bool -> Warnings.locval module_binding : loc:Warnings.loc -> name:string Ocaml_common.Location.loc -> expr:Migrate_parsetree.Ast_408.Parsetree.module_expr -> Migrate_parsetree.Ast_408.Parsetree.module_bindingval module_declaration : loc:Warnings.loc -> name:string Ocaml_common.Location.loc -> type_:Migrate_parsetree.Ast_408.Parsetree.module_type -> Migrate_parsetree.Ast_408.Parsetree.module_declarationval pmod_ident : loc:Warnings.loc -> Ocaml_common.Longident.t Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.module_exprval pmod_structure : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.structure_item list -> Migrate_parsetree.Ast_408.Parsetree.module_exprval pmod_functor : loc:Warnings.loc -> string Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.module_type option -> Migrate_parsetree.Ast_408.Parsetree.module_expr -> Migrate_parsetree.Ast_408.Parsetree.module_exprval pmod_apply : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.module_expr -> Migrate_parsetree.Ast_408.Parsetree.module_expr -> Migrate_parsetree.Ast_408.Parsetree.module_exprval pmod_constraint : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.module_expr -> Migrate_parsetree.Ast_408.Parsetree.module_type -> Migrate_parsetree.Ast_408.Parsetree.module_exprval pmod_unpack : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.module_exprval pmod_extension : loc:Warnings.loc -> (string Ocaml_common.Location.loc * Migrate_parsetree.Ast_408.Parsetree.payload) -> Migrate_parsetree.Ast_408.Parsetree.module_exprval module_substitution : loc:Warnings.loc -> name:string Ocaml_common.Location.loc -> manifest:Ocaml_common.Longident.t Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.module_substitutionval pmty_ident : loc:Warnings.loc -> Ocaml_common.Longident.t Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.module_typeval pmty_signature : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.signature_item list -> Migrate_parsetree.Ast_408.Parsetree.module_typeval pmty_functor : loc:Warnings.loc -> string Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.module_type option -> Migrate_parsetree.Ast_408.Parsetree.module_type -> Migrate_parsetree.Ast_408.Parsetree.module_typeval pmty_with : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.module_type -> Migrate_parsetree.Ast_408.Parsetree.with_constraint list -> Migrate_parsetree.Ast_408.Parsetree.module_typeval pmty_typeof : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.module_expr -> Migrate_parsetree.Ast_408.Parsetree.module_typeval pmty_extension : loc:Warnings.loc -> (string Ocaml_common.Location.loc * Migrate_parsetree.Ast_408.Parsetree.payload) -> Migrate_parsetree.Ast_408.Parsetree.module_typeval pmty_alias : loc:Warnings.loc -> Ocaml_common.Longident.t Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.module_typeval module_type_declaration : loc:Warnings.loc -> name:string Ocaml_common.Location.loc -> type_:Migrate_parsetree.Ast_408.Parsetree.module_type option -> Migrate_parsetree.Ast_408.Parsetree.module_type_declarationval otag : loc:Warnings.loc -> string Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.core_type -> Migrate_parsetree.Ast_408.Parsetree.object_fieldval oinherit : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.core_type -> Migrate_parsetree.Ast_408.Parsetree.object_fieldval open_infos : loc:Warnings.loc -> expr:'a -> override:Migrate_parsetree.Ast_408.Asttypes.override_flag -> 'a Migrate_parsetree.Ast_408.Parsetree.open_infosval ppat_any : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.patternval ppat_var : loc:Warnings.loc -> string Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.patternval ppat_alias : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.pattern -> string Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.patternval ppat_constant : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.constant -> Migrate_parsetree.Ast_408.Parsetree.patternval ppat_interval : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.constant -> Migrate_parsetree.Ast_408.Parsetree.constant -> Migrate_parsetree.Ast_408.Parsetree.patternval ppat_tuple : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.pattern list -> Migrate_parsetree.Ast_408.Parsetree.patternval ppat_construct : loc:Warnings.loc -> Ocaml_common.Longident.t Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.pattern option -> Migrate_parsetree.Ast_408.Parsetree.patternval ppat_variant : loc:Warnings.loc -> string -> Migrate_parsetree.Ast_408.Parsetree.pattern option -> Migrate_parsetree.Ast_408.Parsetree.patternval ppat_record : loc:Warnings.loc -> (Ocaml_common.Longident.t Ocaml_common.Location.loc * Migrate_parsetree.Ast_408.Parsetree.pattern) list -> Migrate_parsetree.Ast_408.Asttypes.closed_flag -> Migrate_parsetree.Ast_408.Parsetree.patternval ppat_array : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.pattern list -> Migrate_parsetree.Ast_408.Parsetree.patternval ppat_or : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.pattern -> Migrate_parsetree.Ast_408.Parsetree.pattern -> Migrate_parsetree.Ast_408.Parsetree.patternval ppat_constraint : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.pattern -> Migrate_parsetree.Ast_408.Parsetree.core_type -> Migrate_parsetree.Ast_408.Parsetree.patternval ppat_type : loc:Warnings.loc -> Ocaml_common.Longident.t Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.patternval ppat_lazy : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.pattern -> Migrate_parsetree.Ast_408.Parsetree.patternval ppat_unpack : loc:Warnings.loc -> string Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.patternval ppat_exception : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.pattern -> Migrate_parsetree.Ast_408.Parsetree.patternval ppat_extension : loc:Warnings.loc -> (string Ocaml_common.Location.loc * Migrate_parsetree.Ast_408.Parsetree.payload) -> Migrate_parsetree.Ast_408.Parsetree.patternval ppat_open : loc:Warnings.loc -> Ocaml_common.Longident.t Ocaml_common.Location.loc -> Migrate_parsetree.Ast_408.Parsetree.pattern -> Migrate_parsetree.Ast_408.Parsetree.patternval position : fname:string -> lnum:int -> bol:int -> cnum:int -> Stdlib.Lexing.positionval rtag : loc:Warnings.loc -> string Ocaml_common.Location.loc -> bool -> Migrate_parsetree.Ast_408.Parsetree.core_type list -> Migrate_parsetree.Ast_408.Parsetree.row_fieldval rinherit : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.core_type -> Migrate_parsetree.Ast_408.Parsetree.row_fieldval psig_value : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.value_description -> Migrate_parsetree.Ast_408.Parsetree.signature_itemval psig_type : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Asttypes.rec_flag -> Migrate_parsetree.Ast_408.Parsetree.type_declaration list -> Migrate_parsetree.Ast_408.Parsetree.signature_itemval psig_typesubst : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.type_declaration list -> Migrate_parsetree.Ast_408.Parsetree.signature_itemval psig_typext : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.type_extension -> Migrate_parsetree.Ast_408.Parsetree.signature_itemval psig_exception : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.type_exception -> Migrate_parsetree.Ast_408.Parsetree.signature_itemval psig_module : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.module_declaration -> Migrate_parsetree.Ast_408.Parsetree.signature_itemval psig_modsubst : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.module_substitution -> Migrate_parsetree.Ast_408.Parsetree.signature_itemval psig_recmodule : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.module_declaration list -> Migrate_parsetree.Ast_408.Parsetree.signature_itemval psig_modtype : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.module_type_declaration -> Migrate_parsetree.Ast_408.Parsetree.signature_itemval psig_open : loc:Warnings.loc -> Ocaml_common.Longident.t Ocaml_common.Location.loc Migrate_parsetree.Ast_408.Parsetree.open_infos -> Migrate_parsetree.Ast_408.Parsetree.signature_itemval psig_include : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.module_type Migrate_parsetree.Ast_408.Parsetree.include_infos -> Migrate_parsetree.Ast_408.Parsetree.signature_itemval psig_class : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.class_type Migrate_parsetree.Ast_408.Parsetree.class_infos list -> Migrate_parsetree.Ast_408.Parsetree.signature_itemval psig_class_type : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.class_type Migrate_parsetree.Ast_408.Parsetree.class_infos list -> Migrate_parsetree.Ast_408.Parsetree.signature_itemval psig_attribute : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.attribute -> Migrate_parsetree.Ast_408.Parsetree.signature_itemval psig_extension : loc:Warnings.loc -> (string Ocaml_common.Location.loc * Migrate_parsetree.Ast_408.Parsetree.payload) -> Migrate_parsetree.Ast_408.Parsetree.attribute list -> Migrate_parsetree.Ast_408.Parsetree.signature_itemval pstr_eval : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.attribute list -> Migrate_parsetree.Ast_408.Parsetree.structure_itemval pstr_value : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Asttypes.rec_flag -> Migrate_parsetree.Ast_408.Parsetree.value_binding list -> Migrate_parsetree.Ast_408.Parsetree.structure_itemval pstr_primitive : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.value_description -> Migrate_parsetree.Ast_408.Parsetree.structure_itemval pstr_type : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Asttypes.rec_flag -> Migrate_parsetree.Ast_408.Parsetree.type_declaration list -> Migrate_parsetree.Ast_408.Parsetree.structure_itemval pstr_typext : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.type_extension -> Migrate_parsetree.Ast_408.Parsetree.structure_itemval pstr_exception : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.type_exception -> Migrate_parsetree.Ast_408.Parsetree.structure_itemval pstr_module : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.module_binding -> Migrate_parsetree.Ast_408.Parsetree.structure_itemval pstr_recmodule : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.module_binding list -> Migrate_parsetree.Ast_408.Parsetree.structure_itemval pstr_modtype : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.module_type_declaration -> Migrate_parsetree.Ast_408.Parsetree.structure_itemval pstr_open : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.module_expr Migrate_parsetree.Ast_408.Parsetree.open_infos -> Migrate_parsetree.Ast_408.Parsetree.structure_itemval pstr_class : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.class_expr Migrate_parsetree.Ast_408.Parsetree.class_infos list -> Migrate_parsetree.Ast_408.Parsetree.structure_itemval pstr_class_type : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.class_type Migrate_parsetree.Ast_408.Parsetree.class_infos list -> Migrate_parsetree.Ast_408.Parsetree.structure_itemval pstr_include : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.module_expr Migrate_parsetree.Ast_408.Parsetree.include_infos -> Migrate_parsetree.Ast_408.Parsetree.structure_itemval pstr_attribute : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.attribute -> Migrate_parsetree.Ast_408.Parsetree.structure_itemval pstr_extension : loc:Warnings.loc -> (string Ocaml_common.Location.loc * Migrate_parsetree.Ast_408.Parsetree.payload) -> Migrate_parsetree.Ast_408.Parsetree.attribute list -> Migrate_parsetree.Ast_408.Parsetree.structure_itemval toplevel_directive : loc:Warnings.loc -> name:string Ocaml_common.Location.loc -> arg:Migrate_parsetree.Ast_408.Parsetree.directive_argument option -> Migrate_parsetree.Ast_408.Parsetree.toplevel_directiveval type_declaration : loc:Warnings.loc -> name:string Ocaml_common.Location.loc -> params:(Migrate_parsetree.Ast_408.Parsetree.core_type * Migrate_parsetree.Ast_408.Asttypes.variance) list -> cstrs:(Migrate_parsetree.Ast_408.Parsetree.core_type * Migrate_parsetree.Ast_408.Parsetree.core_type * Warnings.loc) list -> kind:Migrate_parsetree.Ast_408.Parsetree.type_kind -> private_:Migrate_parsetree.Ast_408.Asttypes.private_flag -> manifest:Migrate_parsetree.Ast_408.Parsetree.core_type option -> Migrate_parsetree.Ast_408.Parsetree.type_declarationval type_exception : loc:Warnings.loc -> Migrate_parsetree.Ast_408.Parsetree.extension_constructor -> Migrate_parsetree.Ast_408.Parsetree.type_exceptionval type_extension : loc:Warnings.loc -> path:Ocaml_common.Longident.t Ocaml_common.Location.loc -> params:(Migrate_parsetree.Ast_408.Parsetree.core_type * Migrate_parsetree.Ast_408.Asttypes.variance) list -> constructors:Migrate_parsetree.Ast_408.Parsetree.extension_constructor list -> private_:Migrate_parsetree.Ast_408.Asttypes.private_flag -> Migrate_parsetree.Ast_408.Parsetree.type_extensionval value_binding : loc:Warnings.loc -> pat:Migrate_parsetree.Ast_408.Parsetree.pattern -> expr:Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.value_bindingval value_description : loc:Warnings.loc -> name:string Ocaml_common.Location.loc -> type_:Migrate_parsetree.Ast_408.Parsetree.core_type -> prim:string list -> Migrate_parsetree.Ast_408.Parsetree.value_descriptionval eint : loc:Location.t -> 'aval echar : loc:Location.t -> 'aval estring : loc:Location.t -> 'aval efloat : loc:Location.t -> 'aval eint32 : loc:Location.t -> 'aval eint64 : loc:Location.t -> 'aval enativeint : loc:Location.t -> 'aval ebool : loc:Location.t -> 'aval pint : loc:Location.t -> 'aval pchar : loc:Location.t -> 'aval pstring : loc:Location.t -> 'aval pfloat : loc:Location.t -> 'aval pint32 : loc:Location.t -> 'aval pint64 : loc:Location.t -> 'aval pnativeint : loc:Location.t -> 'aval pbool : loc:Location.t -> 'aval eunit : loc:Location.t -> 'aval punit : loc:Location.t -> 'aval evar : loc:Location.t -> 'aevar id produces a Pexp_ident _ expression, it parses its input so you can pass any dot-separated identifier, for instance: evar ~loc "Foo.bar".
val pvar : loc:Location.t -> 'aval eapply : loc:Location.t -> 'aSame as pexp_apply but without labels
val eabstract : loc:Location.t -> 'aval esequence : loc:Location.t -> 'aval ppat_tuple_opt : loc:Location.t -> 'aval pexp_tuple_opt : loc:Location.t -> 'aval pconstruct : Migrate_parsetree.Ast_408.Parsetree.constructor_declaration -> Migrate_parsetree.Ast_408.Parsetree.pattern Base.Option.t -> Migrate_parsetree.Ast_408.Parsetree.patternval econstruct : Migrate_parsetree.Ast_408.Parsetree.constructor_declaration -> Migrate_parsetree.Ast_408.Parsetree.expression Base.Option.t -> Migrate_parsetree.Ast_408.Parsetree.expressionval elist : loc:Location.t -> 'aval plist : loc:Location.t -> 'aval pstr_value_list : loc:Location.t -> Migrate_parsetree.Ast_408.Asttypes.rec_flag -> Migrate_parsetree.Ast_408.Parsetree.value_binding Base.List.t -> Migrate_parsetree.Ast_408.Parsetree.structure_item Base.List.tpstr_value_list ~loc rf vbs = pstr_value ~loc rf vbs if vbs <> [], [] otherwise.
val nonrec_type_declaration : loc:Location.t -> 'aval unapplied_type_constr_conv : loc:Location.t -> 'aunapplied_type_constr_conv is the standard way to map identifiers to conversion fonctions, for preprocessor that creates values that follow the structure of types. More precisely, path_conv path (sprintf "sexp_of_%s") is:
- sexp_of_t if path is "t"
- A.B.sexp_of_foo if path is "A.B.foo"
- A.B.sexp_of_f__foo (module A1) (module A2) if path is "A.B.F(A1)(A2).foo"
type_constr_convalso applies it to a list of expression, which both prevents the compiler from allocating useless closures, and almost always what is needed, since type constructors are always applied.
val type_constr_conv : loc:Location.t -> 'aval eta_reduce : Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.expression Base.Option.tTries to simplify fun v1 v2 .. -> f v1 v2 .. into f. Only works when f is a path, not an arbitrary expression as that would change the meaning of the code. This can be used either for cleaning up the generated code, or to reduce allocation if f is a local variable (the compiler won't optimize the allocation of the closure).
Eta-reduction can change the types/behavior in some corner cases that are unlikely to show up in generated code:
- if
fhas optional arguments, eta-expandingfcan drop them - because labels commute, it can change the type of an expression: $ let f ~x y = x + y let f2 = fun x -> add x;; val f : x:int -> int -> int = <fun> val f2 : int -> x:int -> int = <fun> In fact, if
fdoes side effects before receiving all its arguments, and if the eta-expansion is partially applied, eta-reducing could change behavior.
eta_reduce_if_possible_and_nonrec is meant for the case where the resulting expression is going to be bound in a potentially recursive let-binding, where we have to keep the eta-expansion when rec_flag is Recursive to avoid a compile error.
val eta_reduce_if_possible : Migrate_parsetree.Ast_408.Parsetree.expression -> Migrate_parsetree.Ast_408.Parsetree.expressionval eta_reduce_if_possible_and_nonrec : Migrate_parsetree.Ast_408.Parsetree.expression -> rec_flag:Migrate_parsetree.Ast_408.Asttypes.rec_flag -> Migrate_parsetree.Ast_408.Parsetree.expression