summaryrefslogtreecommitdiff
path: root/ast_lifter_411.ml
diff options
context:
space:
mode:
authorStephane Glondu <steph@glondu.net>2020-07-25 07:44:56 +0200
committerStephane Glondu <steph@glondu.net>2020-07-25 07:44:56 +0200
commit754c60d28fd5960376c7dd8022f2491bf47dd9ef (patch)
tree2ef50c34dd20d2a48e412c5a01fb9322dad61339 /ast_lifter_411.ml
parent8daec26e8db4256424282b8d328fd9369da3827e (diff)
New upstream version 5.4.0
Diffstat (limited to 'ast_lifter_411.ml')
-rw-r--r--ast_lifter_411.ml1600
1 files changed, 1600 insertions, 0 deletions
diff --git a/ast_lifter_411.ml b/ast_lifter_411.ml
new file mode 100644
index 0000000..09a09f6
--- /dev/null
+++ b/ast_lifter_411.ml
@@ -0,0 +1,1600 @@
+open Migrate_parsetree.Ast_411
+
+class virtual ['res] lifter =
+ object (this)
+ method lift_Parsetree_expression : Parsetree.expression -> 'res=
+ (fun
+ { Parsetree.pexp_desc = pexp_desc;
+ Parsetree.pexp_loc = pexp_loc;
+ Parsetree.pexp_loc_stack = pexp_loc_stack;
+ Parsetree.pexp_attributes = pexp_attributes }
+ ->
+ this#record "Ast_411.Parsetree.expression"
+ [("pexp_desc", (this#lift_Parsetree_expression_desc pexp_desc));
+ ("pexp_loc", (this#lift_Location_t pexp_loc));
+ ("pexp_loc_stack", (this#lift_loc_stack pexp_loc_stack));
+ ("pexp_attributes",
+ (this#lift_Parsetree_attributes pexp_attributes))] : Parsetree.expression
+ ->
+ 'res)
+ method lift_Parsetree_expression_desc :
+ Parsetree.expression_desc -> 'res=
+ (function
+ | Parsetree.Pexp_ident x0 ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_ident", [this#lift_loc this#lift_Longident_t x0])
+ | Parsetree.Pexp_constant x0 ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_constant", [this#lift_Parsetree_constant x0])
+ | Parsetree.Pexp_let (x0, x1, x2) ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_let",
+ [this#lift_rec_flag x0;
+ this#list (List.map this#lift_Parsetree_value_binding x1);
+ this#lift_Parsetree_expression x2])
+ | Parsetree.Pexp_function x0 ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_function", [this#lift_Parsetree_cases x0])
+ | Parsetree.Pexp_fun (x0, x1, x2, x3) ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_fun",
+ [this#lift_arg_label x0;
+ this#lift_option this#lift_Parsetree_expression x1;
+ this#lift_Parsetree_pattern x2;
+ this#lift_Parsetree_expression x3])
+ | Parsetree.Pexp_apply (x0, x1) ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_apply",
+ [this#lift_Parsetree_expression x0;
+ this#list
+ (List.map
+ (fun x ->
+ let (x0, x1) = x in
+ this#tuple
+ [this#lift_arg_label x0;
+ this#lift_Parsetree_expression x1]) x1)])
+ | Parsetree.Pexp_match (x0, x1) ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_match",
+ [this#lift_Parsetree_expression x0;
+ this#lift_Parsetree_cases x1])
+ | Parsetree.Pexp_try (x0, x1) ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_try",
+ [this#lift_Parsetree_expression x0;
+ this#lift_Parsetree_cases x1])
+ | Parsetree.Pexp_tuple x0 ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_tuple",
+ [this#list (List.map this#lift_Parsetree_expression x0)])
+ | Parsetree.Pexp_construct (x0, x1) ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_construct",
+ [this#lift_loc this#lift_Longident_t x0;
+ this#lift_option this#lift_Parsetree_expression x1])
+ | Parsetree.Pexp_variant (x0, x1) ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_variant",
+ [this#lift_label x0;
+ this#lift_option this#lift_Parsetree_expression x1])
+ | Parsetree.Pexp_record (x0, x1) ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_record",
+ [this#list
+ (List.map
+ (fun x ->
+ let (x0, x1) = x in
+ this#tuple
+ [this#lift_loc this#lift_Longident_t x0;
+ this#lift_Parsetree_expression x1]) x0);
+ this#lift_option this#lift_Parsetree_expression x1])
+ | Parsetree.Pexp_field (x0, x1) ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_field",
+ [this#lift_Parsetree_expression x0;
+ this#lift_loc this#lift_Longident_t x1])
+ | Parsetree.Pexp_setfield (x0, x1, x2) ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_setfield",
+ [this#lift_Parsetree_expression x0;
+ this#lift_loc this#lift_Longident_t x1;
+ this#lift_Parsetree_expression x2])
+ | Parsetree.Pexp_array x0 ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_array",
+ [this#list (List.map this#lift_Parsetree_expression x0)])
+ | Parsetree.Pexp_ifthenelse (x0, x1, x2) ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_ifthenelse",
+ [this#lift_Parsetree_expression x0;
+ this#lift_Parsetree_expression x1;
+ this#lift_option this#lift_Parsetree_expression x2])
+ | Parsetree.Pexp_sequence (x0, x1) ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_sequence",
+ [this#lift_Parsetree_expression x0;
+ this#lift_Parsetree_expression x1])
+ | Parsetree.Pexp_while (x0, x1) ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_while",
+ [this#lift_Parsetree_expression x0;
+ this#lift_Parsetree_expression x1])
+ | Parsetree.Pexp_for (x0, x1, x2, x3, x4) ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_for",
+ [this#lift_Parsetree_pattern x0;
+ this#lift_Parsetree_expression x1;
+ this#lift_Parsetree_expression x2;
+ this#lift_direction_flag x3;
+ this#lift_Parsetree_expression x4])
+ | Parsetree.Pexp_constraint (x0, x1) ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_constraint",
+ [this#lift_Parsetree_expression x0;
+ this#lift_Parsetree_core_type x1])
+ | Parsetree.Pexp_coerce (x0, x1, x2) ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_coerce",
+ [this#lift_Parsetree_expression x0;
+ this#lift_option this#lift_Parsetree_core_type x1;
+ this#lift_Parsetree_core_type x2])
+ | Parsetree.Pexp_send (x0, x1) ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_send",
+ [this#lift_Parsetree_expression x0;
+ this#lift_loc this#lift_label x1])
+ | Parsetree.Pexp_new x0 ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_new", [this#lift_loc this#lift_Longident_t x0])
+ | Parsetree.Pexp_setinstvar (x0, x1) ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_setinstvar",
+ [this#lift_loc this#lift_label x0;
+ this#lift_Parsetree_expression x1])
+ | Parsetree.Pexp_override x0 ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_override",
+ [this#list
+ (List.map
+ (fun x ->
+ let (x0, x1) = x in
+ this#tuple
+ [this#lift_loc this#lift_label x0;
+ this#lift_Parsetree_expression x1]) x0)])
+ | Parsetree.Pexp_letmodule (x0, x1, x2) ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_letmodule",
+ [this#lift_loc (this#lift_option this#string) x0;
+ this#lift_Parsetree_module_expr x1;
+ this#lift_Parsetree_expression x2])
+ | Parsetree.Pexp_letexception (x0, x1) ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_letexception",
+ [this#lift_Parsetree_extension_constructor x0;
+ this#lift_Parsetree_expression x1])
+ | Parsetree.Pexp_assert x0 ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_assert", [this#lift_Parsetree_expression x0])
+ | Parsetree.Pexp_lazy x0 ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_lazy", [this#lift_Parsetree_expression x0])
+ | Parsetree.Pexp_poly (x0, x1) ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_poly",
+ [this#lift_Parsetree_expression x0;
+ this#lift_option this#lift_Parsetree_core_type x1])
+ | Parsetree.Pexp_object x0 ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_object", [this#lift_Parsetree_class_structure x0])
+ | Parsetree.Pexp_newtype (x0, x1) ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_newtype",
+ [this#lift_loc this#string x0;
+ this#lift_Parsetree_expression x1])
+ | Parsetree.Pexp_pack x0 ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_pack", [this#lift_Parsetree_module_expr x0])
+ | Parsetree.Pexp_open (x0, x1) ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_open",
+ [this#lift_Parsetree_open_declaration x0;
+ this#lift_Parsetree_expression x1])
+ | Parsetree.Pexp_letop x0 ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_letop", [this#lift_Parsetree_letop x0])
+ | Parsetree.Pexp_extension x0 ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_extension", [this#lift_Parsetree_extension x0])
+ | Parsetree.Pexp_unreachable ->
+ this#constr "Ast_411.Parsetree.expression_desc"
+ ("Pexp_unreachable", []) : Parsetree.expression_desc ->
+ 'res)
+ method lift_Parsetree_letop : Parsetree.letop -> 'res=
+ (fun
+ { Parsetree.let_ = let_; Parsetree.ands = ands;
+ Parsetree.body = body }
+ ->
+ this#record "Ast_411.Parsetree.letop"
+ [("let_", (this#lift_Parsetree_binding_op let_));
+ ("ands",
+ (this#list (List.map this#lift_Parsetree_binding_op ands)));
+ ("body", (this#lift_Parsetree_expression body))] : Parsetree.letop
+ -> 'res)
+ method lift_Parsetree_binding_op : Parsetree.binding_op -> 'res=
+ (fun
+ { Parsetree.pbop_op = pbop_op;
+ Parsetree.pbop_pat = pbop_pat;
+ Parsetree.pbop_exp = pbop_exp;
+ Parsetree.pbop_loc = pbop_loc }
+ ->
+ this#record "Ast_411.Parsetree.binding_op"
+ [("pbop_op", (this#lift_loc this#string pbop_op));
+ ("pbop_pat", (this#lift_Parsetree_pattern pbop_pat));
+ ("pbop_exp", (this#lift_Parsetree_expression pbop_exp));
+ ("pbop_loc", (this#lift_Location_t pbop_loc))] : Parsetree.binding_op
+ -> 'res)
+ method lift_direction_flag :
+ Migrate_parsetree__Ast_411.Asttypes.direction_flag -> 'res=
+ (function
+ | Migrate_parsetree__Ast_411.Asttypes.Upto ->
+ this#constr "Migrate_parsetree__Ast_411.Asttypes.direction_flag"
+ ("Upto", [])
+ | Migrate_parsetree__Ast_411.Asttypes.Downto ->
+ this#constr "Migrate_parsetree__Ast_411.Asttypes.direction_flag"
+ ("Downto", []) : Migrate_parsetree__Ast_411.Asttypes.direction_flag
+ -> 'res)
+ method lift_Parsetree_cases : Parsetree.case list -> 'res=
+ (fun x -> this#list (List.map this#lift_Parsetree_case x) : Parsetree.case list
+ ->
+ 'res)
+ method lift_Parsetree_case : Parsetree.case -> 'res=
+ (fun
+ { Parsetree.pc_lhs = pc_lhs;
+ Parsetree.pc_guard = pc_guard;
+ Parsetree.pc_rhs = pc_rhs }
+ ->
+ this#record "Ast_411.Parsetree.case"
+ [("pc_lhs", (this#lift_Parsetree_pattern pc_lhs));
+ ("pc_guard",
+ (this#lift_option this#lift_Parsetree_expression pc_guard));
+ ("pc_rhs", (this#lift_Parsetree_expression pc_rhs))] : Parsetree.case
+ ->
+ 'res)
+ method lift_Parsetree_value_binding :
+ Parsetree.value_binding -> 'res=
+ (fun
+ { Parsetree.pvb_pat = pvb_pat;
+ Parsetree.pvb_expr = pvb_expr;
+ Parsetree.pvb_attributes = pvb_attributes;
+ Parsetree.pvb_loc = pvb_loc }
+ ->
+ this#record "Ast_411.Parsetree.value_binding"
+ [("pvb_pat", (this#lift_Parsetree_pattern pvb_pat));
+ ("pvb_expr", (this#lift_Parsetree_expression pvb_expr));
+ ("pvb_attributes",
+ (this#lift_Parsetree_attributes pvb_attributes));
+ ("pvb_loc", (this#lift_Location_t pvb_loc))] : Parsetree.value_binding
+ -> 'res)
+ method lift_Parsetree_pattern : Parsetree.pattern -> 'res=
+ (fun
+ { Parsetree.ppat_desc = ppat_desc;
+ Parsetree.ppat_loc = ppat_loc;
+ Parsetree.ppat_loc_stack = ppat_loc_stack;
+ Parsetree.ppat_attributes = ppat_attributes }
+ ->
+ this#record "Ast_411.Parsetree.pattern"
+ [("ppat_desc", (this#lift_Parsetree_pattern_desc ppat_desc));
+ ("ppat_loc", (this#lift_Location_t ppat_loc));
+ ("ppat_loc_stack", (this#lift_loc_stack ppat_loc_stack));
+ ("ppat_attributes",
+ (this#lift_Parsetree_attributes ppat_attributes))] : Parsetree.pattern
+ ->
+ 'res)
+ method lift_Parsetree_pattern_desc :
+ Parsetree.pattern_desc -> 'res=
+ (function
+ | Parsetree.Ppat_any ->
+ this#constr "Ast_411.Parsetree.pattern_desc" ("Ppat_any", [])
+ | Parsetree.Ppat_var x0 ->
+ this#constr "Ast_411.Parsetree.pattern_desc"
+ ("Ppat_var", [this#lift_loc this#string x0])
+ | Parsetree.Ppat_alias (x0, x1) ->
+ this#constr "Ast_411.Parsetree.pattern_desc"
+ ("Ppat_alias",
+ [this#lift_Parsetree_pattern x0; this#lift_loc this#string x1])
+ | Parsetree.Ppat_constant x0 ->
+ this#constr "Ast_411.Parsetree.pattern_desc"
+ ("Ppat_constant", [this#lift_Parsetree_constant x0])
+ | Parsetree.Ppat_interval (x0, x1) ->
+ this#constr "Ast_411.Parsetree.pattern_desc"
+ ("Ppat_interval",
+ [this#lift_Parsetree_constant x0;
+ this#lift_Parsetree_constant x1])
+ | Parsetree.Ppat_tuple x0 ->
+ this#constr "Ast_411.Parsetree.pattern_desc"
+ ("Ppat_tuple",
+ [this#list (List.map this#lift_Parsetree_pattern x0)])
+ | Parsetree.Ppat_construct (x0, x1) ->
+ this#constr "Ast_411.Parsetree.pattern_desc"
+ ("Ppat_construct",
+ [this#lift_loc this#lift_Longident_t x0;
+ this#lift_option this#lift_Parsetree_pattern x1])
+ | Parsetree.Ppat_variant (x0, x1) ->
+ this#constr "Ast_411.Parsetree.pattern_desc"
+ ("Ppat_variant",
+ [this#lift_label x0;
+ this#lift_option this#lift_Parsetree_pattern x1])
+ | Parsetree.Ppat_record (x0, x1) ->
+ this#constr "Ast_411.Parsetree.pattern_desc"
+ ("Ppat_record",
+ [this#list
+ (List.map
+ (fun x ->
+ let (x0, x1) = x in
+ this#tuple
+ [this#lift_loc this#lift_Longident_t x0;
+ this#lift_Parsetree_pattern x1]) x0);
+ this#lift_closed_flag x1])
+ | Parsetree.Ppat_array x0 ->
+ this#constr "Ast_411.Parsetree.pattern_desc"
+ ("Ppat_array",
+ [this#list (List.map this#lift_Parsetree_pattern x0)])
+ | Parsetree.Ppat_or (x0, x1) ->
+ this#constr "Ast_411.Parsetree.pattern_desc"
+ ("Ppat_or",
+ [this#lift_Parsetree_pattern x0;
+ this#lift_Parsetree_pattern x1])
+ | Parsetree.Ppat_constraint (x0, x1) ->
+ this#constr "Ast_411.Parsetree.pattern_desc"
+ ("Ppat_constraint",
+ [this#lift_Parsetree_pattern x0;
+ this#lift_Parsetree_core_type x1])
+ | Parsetree.Ppat_type x0 ->
+ this#constr "Ast_411.Parsetree.pattern_desc"
+ ("Ppat_type", [this#lift_loc this#lift_Longident_t x0])
+ | Parsetree.Ppat_lazy x0 ->
+ this#constr "Ast_411.Parsetree.pattern_desc"
+ ("Ppat_lazy", [this#lift_Parsetree_pattern x0])
+ | Parsetree.Ppat_unpack x0 ->
+ this#constr "Ast_411.Parsetree.pattern_desc"
+ ("Ppat_unpack", [this#lift_loc (this#lift_option this#string) x0])
+ | Parsetree.Ppat_exception x0 ->
+ this#constr "Ast_411.Parsetree.pattern_desc"
+ ("Ppat_exception", [this#lift_Parsetree_pattern x0])
+ | Parsetree.Ppat_extension x0 ->
+ this#constr "Ast_411.Parsetree.pattern_desc"
+ ("Ppat_extension", [this#lift_Parsetree_extension x0])
+ | Parsetree.Ppat_open (x0, x1) ->
+ this#constr "Ast_411.Parsetree.pattern_desc"
+ ("Ppat_open",
+ [this#lift_loc this#lift_Longident_t x0;
+ this#lift_Parsetree_pattern x1]) : Parsetree.pattern_desc
+ -> 'res)
+ method lift_Parsetree_core_type : Parsetree.core_type -> 'res=
+ (fun
+ { Parsetree.ptyp_desc = ptyp_desc;
+ Parsetree.ptyp_loc = ptyp_loc;
+ Parsetree.ptyp_loc_stack = ptyp_loc_stack;
+ Parsetree.ptyp_attributes = ptyp_attributes }
+ ->
+ this#record "Ast_411.Parsetree.core_type"
+ [("ptyp_desc", (this#lift_Parsetree_core_type_desc ptyp_desc));
+ ("ptyp_loc", (this#lift_Location_t ptyp_loc));
+ ("ptyp_loc_stack", (this#lift_loc_stack ptyp_loc_stack));
+ ("ptyp_attributes",
+ (this#lift_Parsetree_attributes ptyp_attributes))] : Parsetree.core_type
+ ->
+ 'res)
+ method lift_Parsetree_core_type_desc :
+ Parsetree.core_type_desc -> 'res=
+ (function
+ | Parsetree.Ptyp_any ->
+ this#constr "Ast_411.Parsetree.core_type_desc" ("Ptyp_any", [])
+ | Parsetree.Ptyp_var x0 ->
+ this#constr "Ast_411.Parsetree.core_type_desc"
+ ("Ptyp_var", [this#string x0])
+ | Parsetree.Ptyp_arrow (x0, x1, x2) ->
+ this#constr "Ast_411.Parsetree.core_type_desc"
+ ("Ptyp_arrow",
+ [this#lift_arg_label x0;
+ this#lift_Parsetree_core_type x1;
+ this#lift_Parsetree_core_type x2])
+ | Parsetree.Ptyp_tuple x0 ->
+ this#constr "Ast_411.Parsetree.core_type_desc"
+ ("Ptyp_tuple",
+ [this#list (List.map this#lift_Parsetree_core_type x0)])
+ | Parsetree.Ptyp_constr (x0, x1) ->
+ this#constr "Ast_411.Parsetree.core_type_desc"
+ ("Ptyp_constr",
+ [this#lift_loc this#lift_Longident_t x0;
+ this#list (List.map this#lift_Parsetree_core_type x1)])
+ | Parsetree.Ptyp_object (x0, x1) ->
+ this#constr "Ast_411.Parsetree.core_type_desc"
+ ("Ptyp_object",
+ [this#list (List.map this#lift_Parsetree_object_field x0);
+ this#lift_closed_flag x1])
+ | Parsetree.Ptyp_class (x0, x1) ->
+ this#constr "Ast_411.Parsetree.core_type_desc"
+ ("Ptyp_class",
+ [this#lift_loc this#lift_Longident_t x0;
+ this#list (List.map this#lift_Parsetree_core_type x1)])
+ | Parsetree.Ptyp_alias (x0, x1) ->
+ this#constr "Ast_411.Parsetree.core_type_desc"
+ ("Ptyp_alias",
+ [this#lift_Parsetree_core_type x0; this#string x1])
+ | Parsetree.Ptyp_variant (x0, x1, x2) ->
+ this#constr "Ast_411.Parsetree.core_type_desc"
+ ("Ptyp_variant",
+ [this#list (List.map this#lift_Parsetree_row_field x0);
+ this#lift_closed_flag x1;
+ this#lift_option
+ (fun x -> this#list (List.map this#lift_label x)) x2])
+ | Parsetree.Ptyp_poly (x0, x1) ->
+ this#constr "Ast_411.Parsetree.core_type_desc"
+ ("Ptyp_poly",
+ [this#list
+ (List.map (fun x -> this#lift_loc this#string x) x0);
+ this#lift_Parsetree_core_type x1])
+ | Parsetree.Ptyp_package x0 ->
+ this#constr "Ast_411.Parsetree.core_type_desc"
+ ("Ptyp_package", [this#lift_Parsetree_package_type x0])
+ | Parsetree.Ptyp_extension x0 ->
+ this#constr "Ast_411.Parsetree.core_type_desc"
+ ("Ptyp_extension", [this#lift_Parsetree_extension x0]) :
+ Parsetree.core_type_desc -> 'res)
+ method lift_Parsetree_package_type :
+ Parsetree.package_type -> 'res=
+ (fun x ->
+ let (x0, x1) = x in
+ this#tuple
+ [this#lift_loc this#lift_Longident_t x0;
+ this#list
+ (List.map
+ (fun x ->
+ let (x0, x1) = x in
+ this#tuple
+ [this#lift_loc this#lift_Longident_t x0;
+ this#lift_Parsetree_core_type x1]) x1)] : Parsetree.package_type
+ -> 'res)
+ method lift_Parsetree_row_field : Parsetree.row_field -> 'res=
+ (fun
+ { Parsetree.prf_desc = prf_desc;
+ Parsetree.prf_loc = prf_loc;
+ Parsetree.prf_attributes = prf_attributes }
+ ->
+ this#record "Ast_411.Parsetree.row_field"
+ [("prf_desc", (this#lift_Parsetree_row_field_desc prf_desc));
+ ("prf_loc", (this#lift_Location_t prf_loc));
+ ("prf_attributes",
+ (this#lift_Parsetree_attributes prf_attributes))] : Parsetree.row_field
+ ->
+ 'res)
+ method lift_Parsetree_row_field_desc :
+ Parsetree.row_field_desc -> 'res=
+ (function
+ | Parsetree.Rtag (x0, x1, x2) ->
+ this#constr "Ast_411.Parsetree.row_field_desc"
+ ("Rtag",
+ [this#lift_loc this#lift_label x0;
+ this#lift_bool x1;
+ this#list (List.map this#lift_Parsetree_core_type x2)])
+ | Parsetree.Rinherit x0 ->
+ this#constr "Ast_411.Parsetree.row_field_desc"
+ ("Rinherit", [this#lift_Parsetree_core_type x0]) : Parsetree.row_field_desc
+ ->
+ 'res)
+ method lift_Parsetree_object_field :
+ Parsetree.object_field -> 'res=
+ (fun
+ { Parsetree.pof_desc = pof_desc;
+ Parsetree.pof_loc = pof_loc;
+ Parsetree.pof_attributes = pof_attributes }
+ ->
+ this#record "Ast_411.Parsetree.object_field"
+ [("pof_desc", (this#lift_Parsetree_object_field_desc pof_desc));
+ ("pof_loc", (this#lift_Location_t pof_loc));
+ ("pof_attributes",
+ (this#lift_Parsetree_attributes pof_attributes))] : Parsetree.object_field
+ ->
+ 'res)
+ method lift_Parsetree_attributes : Parsetree.attributes -> 'res=
+ (fun x -> this#list (List.map this#lift_Parsetree_attribute x) :
+ Parsetree.attributes -> 'res)
+ method lift_Parsetree_attribute : Parsetree.attribute -> 'res=
+ (fun
+ { Parsetree.attr_name = attr_name;
+ Parsetree.attr_payload = attr_payload;
+ Parsetree.attr_loc = attr_loc }
+ ->
+ this#record "Ast_411.Parsetree.attribute"
+ [("attr_name", (this#lift_loc this#string attr_name));
+ ("attr_payload", (this#lift_Parsetree_payload attr_payload));
+ ("attr_loc", (this#lift_Location_t attr_loc))] : Parsetree.attribute
+ -> 'res)
+ method lift_Parsetree_payload : Parsetree.payload -> 'res=
+ (function
+ | Parsetree.PStr x0 ->
+ this#constr "Ast_411.Parsetree.payload"
+ ("PStr", [this#lift_Parsetree_structure x0])
+ | Parsetree.PSig x0 ->
+ this#constr "Ast_411.Parsetree.payload"
+ ("PSig", [this#lift_Parsetree_signature x0])
+ | Parsetree.PTyp x0 ->
+ this#constr "Ast_411.Parsetree.payload"
+ ("PTyp", [this#lift_Parsetree_core_type x0])
+ | Parsetree.PPat (x0, x1) ->
+ this#constr "Ast_411.Parsetree.payload"
+ ("PPat",
+ [this#lift_Parsetree_pattern x0;
+ this#lift_option this#lift_Parsetree_expression x1]) :
+ Parsetree.payload -> 'res)
+ method lift_Parsetree_structure : Parsetree.structure -> 'res=
+ (fun x -> this#list (List.map this#lift_Parsetree_structure_item x) :
+ Parsetree.structure -> 'res)
+ method lift_Parsetree_structure_item :
+ Parsetree.structure_item -> 'res=
+ (fun
+ { Parsetree.pstr_desc = pstr_desc;
+ Parsetree.pstr_loc = pstr_loc }
+ ->
+ this#record "Ast_411.Parsetree.structure_item"
+ [("pstr_desc",
+ (this#lift_Parsetree_structure_item_desc pstr_desc));
+ ("pstr_loc", (this#lift_Location_t pstr_loc))] : Parsetree.structure_item
+ -> 'res)
+ method lift_Parsetree_structure_item_desc :
+ Parsetree.structure_item_desc -> 'res=
+ (function
+ | Parsetree.Pstr_eval (x0, x1) ->
+ this#constr "Ast_411.Parsetree.structure_item_desc"
+ ("Pstr_eval",
+ [this#lift_Parsetree_expression x0;
+ this#lift_Parsetree_attributes x1])
+ | Parsetree.Pstr_value (x0, x1) ->
+ this#constr "Ast_411.Parsetree.structure_item_desc"
+ ("Pstr_value",
+ [this#lift_rec_flag x0;
+ this#list (List.map this#lift_Parsetree_value_binding x1)])
+ | Parsetree.Pstr_primitive x0 ->
+ this#constr "Ast_411.Parsetree.structure_item_desc"
+ ("Pstr_primitive", [this#lift_Parsetree_value_description x0])
+ | Parsetree.Pstr_type (x0, x1) ->
+ this#constr "Ast_411.Parsetree.structure_item_desc"
+ ("Pstr_type",
+ [this#lift_rec_flag x0;
+ this#list (List.map this#lift_Parsetree_type_declaration x1)])
+ | Parsetree.Pstr_typext x0 ->
+ this#constr "Ast_411.Parsetree.structure_item_desc"
+ ("Pstr_typext", [this#lift_Parsetree_type_extension x0])
+ | Parsetree.Pstr_exception x0 ->
+ this#constr "Ast_411.Parsetree.structure_item_desc"
+ ("Pstr_exception", [this#lift_Parsetree_type_exception x0])
+ | Parsetree.Pstr_module x0 ->
+ this#constr "Ast_411.Parsetree.structure_item_desc"
+ ("Pstr_module", [this#lift_Parsetree_module_binding x0])
+ | Parsetree.Pstr_recmodule x0 ->
+ this#constr "Ast_411.Parsetree.structure_item_desc"
+ ("Pstr_recmodule",
+ [this#list (List.map this#lift_Parsetree_module_binding x0)])
+ | Parsetree.Pstr_modtype x0 ->
+ this#constr "Ast_411.Parsetree.structure_item_desc"
+ ("Pstr_modtype",
+ [this#lift_Parsetree_module_type_declaration x0])
+ | Parsetree.Pstr_open x0 ->
+ this#constr "Ast_411.Parsetree.structure_item_desc"
+ ("Pstr_open", [this#lift_Parsetree_open_declaration x0])
+ | Parsetree.Pstr_class x0 ->
+ this#constr "Ast_411.Parsetree.structure_item_desc"
+ ("Pstr_class",
+ [this#list (List.map this#lift_Parsetree_class_declaration x0)])
+ | Parsetree.Pstr_class_type x0 ->
+ this#constr "Ast_411.Parsetree.structure_item_desc"
+ ("Pstr_class_type",
+ [this#list
+ (List.map this#lift_Parsetree_class_type_declaration x0)])
+ | Parsetree.Pstr_include x0 ->
+ this#constr "Ast_411.Parsetree.structure_item_desc"
+ ("Pstr_include", [this#lift_Parsetree_include_declaration x0])
+ | Parsetree.Pstr_attribute x0 ->
+ this#constr "Ast_411.Parsetree.structure_item_desc"
+ ("Pstr_attribute", [this#lift_Parsetree_attribute x0])
+ | Parsetree.Pstr_extension (x0, x1) ->
+ this#constr "Ast_411.Parsetree.structure_item_desc"
+ ("Pstr_extension",
+ [this#lift_Parsetree_extension x0;
+ this#lift_Parsetree_attributes x1]) : Parsetree.structure_item_desc
+ -> 'res)
+ method lift_Parsetree_include_declaration :
+ Parsetree.include_declaration -> 'res=
+ (fun x ->
+ this#lift_Parsetree_include_infos this#lift_Parsetree_module_expr x :
+ Parsetree.include_declaration -> 'res)
+ method lift_Parsetree_class_declaration :
+ Parsetree.class_declaration -> 'res=
+ (fun x ->
+ this#lift_Parsetree_class_infos this#lift_Parsetree_class_expr x :
+ Parsetree.class_declaration -> 'res)
+ method lift_Parsetree_class_expr : Parsetree.class_expr -> 'res=
+ (fun
+ { Parsetree.pcl_desc = pcl_desc;
+ Parsetree.pcl_loc = pcl_loc;
+ Parsetree.pcl_attributes = pcl_attributes }
+ ->
+ this#record "Ast_411.Parsetree.class_expr"
+ [("pcl_desc", (this#lift_Parsetree_class_expr_desc pcl_desc));
+ ("pcl_loc", (this#lift_Location_t pcl_loc));
+ ("pcl_attributes",
+ (this#lift_Parsetree_attributes pcl_attributes))] : Parsetree.class_expr
+ ->
+ 'res)
+ method lift_Parsetree_class_expr_desc :
+ Parsetree.class_expr_desc -> 'res=
+ (function
+ | Parsetree.Pcl_constr (x0, x1) ->
+ this#constr "Ast_411.Parsetree.class_expr_desc"
+ ("Pcl_constr",
+ [this#lift_loc this#lift_Longident_t x0;
+ this#list (List.map this#lift_Parsetree_core_type x1)])
+ | Parsetree.Pcl_structure x0 ->
+ this#constr "Ast_411.Parsetree.class_expr_desc"
+ ("Pcl_structure", [this#lift_Parsetree_class_structure x0])
+ | Parsetree.Pcl_fun (x0, x1, x2, x3) ->
+ this#constr "Ast_411.Parsetree.class_expr_desc"
+ ("Pcl_fun",
+ [this#lift_arg_label x0;
+ this#lift_option this#lift_Parsetree_expression x1;
+ this#lift_Parsetree_pattern x2;
+ this#lift_Parsetree_class_expr x3])
+ | Parsetree.Pcl_apply (x0, x1) ->
+ this#constr "Ast_411.Parsetree.class_expr_desc"
+ ("Pcl_apply",
+ [this#lift_Parsetree_class_expr x0;
+ this#list
+ (List.map
+ (fun x ->
+ let (x0, x1) = x in
+ this#tuple
+ [this#lift_arg_label x0;
+ this#lift_Parsetree_expression x1]) x1)])
+ | Parsetree.Pcl_let (x0, x1, x2) ->
+ this#constr "Ast_411.Parsetree.class_expr_desc"
+ ("Pcl_let",
+ [this#lift_rec_flag x0;
+ this#list (List.map this#lift_Parsetree_value_binding x1);
+ this#lift_Parsetree_class_expr x2])
+ | Parsetree.Pcl_constraint (x0, x1) ->
+ this#constr "Ast_411.Parsetree.class_expr_desc"
+ ("Pcl_constraint",
+ [this#lift_Parsetree_class_expr x0;
+ this#lift_Parsetree_class_type x1])
+ | Parsetree.Pcl_extension x0 ->
+ this#constr "Ast_411.Parsetree.class_expr_desc"
+ ("Pcl_extension", [this#lift_Parsetree_extension x0])
+ | Parsetree.Pcl_open (x0, x1) ->
+ this#constr "Ast_411.Parsetree.class_expr_desc"
+ ("Pcl_open",
+ [this#lift_Parsetree_open_description x0;
+ this#lift_Parsetree_class_expr x1]) : Parsetree.class_expr_desc
+ -> 'res)
+ method lift_Parsetree_class_structure :
+ Parsetree.class_structure -> 'res=
+ (fun
+ { Parsetree.pcstr_self = pcstr_self;
+ Parsetree.pcstr_fields = pcstr_fields }
+ ->
+ this#record "Ast_411.Parsetree.class_structure"
+ [("pcstr_self", (this#lift_Parsetree_pattern pcstr_self));
+ ("pcstr_fields",
+ (this#list
+ (List.map this#lift_Parsetree_class_field pcstr_fields)))] :
+ Parsetree.class_structure -> 'res)
+ method lift_Parsetree_class_field :
+ Parsetree.class_field -> 'res=
+ (fun
+ { Parsetree.pcf_desc = pcf_desc;
+ Parsetree.pcf_loc = pcf_loc;
+ Parsetree.pcf_attributes = pcf_attributes }
+ ->
+ this#record "Ast_411.Parsetree.class_field"
+ [("pcf_desc", (this#lift_Parsetree_class_field_desc pcf_desc));
+ ("pcf_loc", (this#lift_Location_t pcf_loc));
+ ("pcf_attributes",
+ (this#lift_Parsetree_attributes pcf_attributes))] : Parsetree.class_field
+ ->
+ 'res)
+ method lift_Parsetree_class_field_desc :
+ Parsetree.class_field_desc -> 'res=
+ (function
+ | Parsetree.Pcf_inherit (x0, x1, x2) ->
+ this#constr "Ast_411.Parsetree.class_field_desc"
+ ("Pcf_inherit",
+ [this#lift_override_flag x0;
+ this#lift_Parsetree_class_expr x1;
+ this#lift_option (fun x -> this#lift_loc this#string x) x2])
+ | Parsetree.Pcf_val x0 ->
+ this#constr "Ast_411.Parsetree.class_field_desc"
+ ("Pcf_val",
+ [(let (x0, x1, x2) = x0 in
+ this#tuple
+ [this#lift_loc this#lift_label x0;
+ this#lift_mutable_flag x1;
+ this#lift_Parsetree_class_field_kind x2])])
+ | Parsetree.Pcf_method x0 ->
+ this#constr "Ast_411.Parsetree.class_field_desc"
+ ("Pcf_method",
+ [(let (x0, x1, x2) = x0 in
+ this#tuple
+ [this#lift_loc this#lift_label x0;
+ this#lift_private_flag x1;
+ this#lift_Parsetree_class_field_kind x2])])
+ | Parsetree.Pcf_constraint x0 ->
+ this#constr "Ast_411.Parsetree.class_field_desc"
+ ("Pcf_constraint",
+ [(let (x0, x1) = x0 in
+ this#tuple
+ [this#lift_Parsetree_core_type x0;
+ this#lift_Parsetree_core_type x1])])
+ | Parsetree.Pcf_initializer x0 ->
+ this#constr "Ast_411.Parsetree.class_field_desc"
+ ("Pcf_initializer", [this#lift_Parsetree_expression x0])
+ | Parsetree.Pcf_attribute x0 ->
+ this#constr "Ast_411.Parsetree.class_field_desc"
+ ("Pcf_attribute", [this#lift_Parsetree_attribute x0])
+ | Parsetree.Pcf_extension x0 ->
+ this#constr "Ast_411.Parsetree.class_field_desc"
+ ("Pcf_extension", [this#lift_Parsetree_extension x0]) :
+ Parsetree.class_field_desc -> 'res)
+ method lift_Parsetree_class_field_kind :
+ Parsetree.class_field_kind -> 'res=
+ (function
+ | Parsetree.Cfk_virtual x0 ->
+ this#constr "Ast_411.Parsetree.class_field_kind"
+ ("Cfk_virtual", [this#lift_Parsetree_core_type x0])
+ | Parsetree.Cfk_concrete (x0, x1) ->
+ this#constr "Ast_411.Parsetree.class_field_kind"
+ ("Cfk_concrete",
+ [this#lift_override_flag x0;
+ this#lift_Parsetree_expression x1]) : Parsetree.class_field_kind
+ -> 'res)
+ method lift_Parsetree_open_declaration :
+ Parsetree.open_declaration -> 'res=
+ (fun x ->
+ this#lift_Parsetree_open_infos this#lift_Parsetree_module_expr x :
+ Parsetree.open_declaration -> 'res)
+ method lift_Parsetree_module_binding :
+ Parsetree.module_binding -> 'res=
+ (fun
+ { Parsetree.pmb_name = pmb_name;
+ Parsetree.pmb_expr = pmb_expr;
+ Parsetree.pmb_attributes = pmb_attributes;
+ Parsetree.pmb_loc = pmb_loc }
+ ->
+ this#record "Ast_411.Parsetree.module_binding"
+ [("pmb_name", (this#lift_loc (this#lift_option this#string) pmb_name));
+ ("pmb_expr", (this#lift_Parsetree_module_expr pmb_expr));
+ ("pmb_attributes",
+ (this#lift_Parsetree_attributes pmb_attributes));
+ ("pmb_loc", (this#lift_Location_t pmb_loc))] : Parsetree.module_binding
+ -> 'res)
+ method lift_Parsetree_module_expr :
+ Parsetree.module_expr -> 'res=
+ (fun
+ { Parsetree.pmod_desc = pmod_desc;
+ Parsetree.pmod_loc = pmod_loc;
+ Parsetree.pmod_attributes = pmod_attributes }
+ ->
+ this#record "Ast_411.Parsetree.module_expr"
+ [("pmod_desc", (this#lift_Parsetree_module_expr_desc pmod_desc));
+ ("pmod_loc", (this#lift_Location_t pmod_loc));
+ ("pmod_attributes",
+ (this#lift_Parsetree_attributes pmod_attributes))] : Parsetree.module_expr
+ ->
+ 'res)
+ method lift_Parsetree_module_expr_desc :
+ Parsetree.module_expr_desc -> 'res=
+ (function
+ | Parsetree.Pmod_ident x0 ->
+ this#constr "Ast_411.Parsetree.module_expr_desc"
+ ("Pmod_ident", [this#lift_loc this#lift_Longident_t x0])
+ | Parsetree.Pmod_structure x0 ->
+ this#constr "Ast_411.Parsetree.module_expr_desc"
+ ("Pmod_structure", [this#lift_Parsetree_structure x0])
+ | Parsetree.Pmod_functor (x0, x1) ->
+ this#constr "Ast_411.Parsetree.module_expr_desc"
+ ("Pmod_functor",
+ [this#lift_Parsetree_functor_parameter x0;
+ this#lift_Parsetree_module_expr x1])
+ | Parsetree.Pmod_apply (x0, x1) ->
+ this#constr "Ast_411.Parsetree.module_expr_desc"
+ ("Pmod_apply",
+ [this#lift_Parsetree_module_expr x0;
+ this#lift_Parsetree_module_expr x1])
+ | Parsetree.Pmod_constraint (x0, x1) ->
+ this#constr "Ast_411.Parsetree.module_expr_desc"
+ ("Pmod_constraint",
+ [this#lift_Parsetree_module_expr x0;
+ this#lift_Parsetree_module_type x1])
+ | Parsetree.Pmod_unpack x0 ->
+ this#constr "Ast_411.Parsetree.module_expr_desc"
+ ("Pmod_unpack", [this#lift_Parsetree_expression x0])
+ | Parsetree.Pmod_extension x0 ->
+ this#constr "Ast_411.Parsetree.module_expr_desc"
+ ("Pmod_extension", [this#lift_Parsetree_extension x0]) :
+ Parsetree.module_expr_desc -> 'res)
+ method lift_Parsetree_module_type :
+ Parsetree.module_type -> 'res=
+ (fun
+ { Parsetree.pmty_desc = pmty_desc;
+ Parsetree.pmty_loc = pmty_loc;
+ Parsetree.pmty_attributes = pmty_attributes }
+ ->
+ this#record "Ast_411.Parsetree.module_type"
+ [("pmty_desc", (this#lift_Parsetree_module_type_desc pmty_desc));
+ ("pmty_loc", (this#lift_Location_t pmty_loc));
+ ("pmty_attributes",
+ (this#lift_Parsetree_attributes pmty_attributes))] : Parsetree.module_type
+ ->
+ 'res)
+ method lift_Parsetree_module_type_desc :
+ Parsetree.module_type_desc -> 'res=
+ (function
+ | Parsetree.Pmty_ident x0 ->
+ this#constr "Ast_411.Parsetree.module_type_desc"
+ ("Pmty_ident", [this#lift_loc this#lift_Longident_t x0])
+ | Parsetree.Pmty_signature x0 ->
+ this#constr "Ast_411.Parsetree.module_type_desc"
+ ("Pmty_signature", [this#lift_Parsetree_signature x0])
+ | Parsetree.Pmty_functor (x0, x1) ->
+ this#constr "Ast_411.Parsetree.module_type_desc"
+ ("Pmty_functor",
+ [this#lift_Parsetree_functor_parameter x0;
+ this#lift_Parsetree_module_type x1])
+ | Parsetree.Pmty_with (x0, x1) ->
+ this#constr "Ast_411.Parsetree.module_type_desc"
+ ("Pmty_with",
+ [this#lift_Parsetree_module_type x0;
+ this#list (List.map this#lift_Parsetree_with_constraint x1)])
+ | Parsetree.Pmty_typeof x0 ->
+ this#constr "Ast_411.Parsetree.module_type_desc"
+ ("Pmty_typeof", [this#lift_Parsetree_module_expr x0])
+ | Parsetree.Pmty_extension x0 ->
+ this#constr "Ast_411.Parsetree.module_type_desc"
+ ("Pmty_extension", [this#lift_Parsetree_extension x0])
+ | Parsetree.Pmty_alias x0 ->
+ this#constr "Ast_411.Parsetree.module_type_desc"
+ ("Pmty_alias", [this#lift_loc this#lift_Longident_t x0]) :
+ Parsetree.module_type_desc -> 'res)
+ method lift_Parsetree_functor_parameter :
+ Parsetree.functor_parameter -> 'res=
+ (function
+ | Parsetree.Unit ->
+ this#constr "Ast_411.Parsetree.functor_parameter" ("Unit", [])
+ | Parsetree.Named (x0, x1) ->
+ this#constr "Ast_411.Parsetree.functor_parameter"
+ ("Named",
+ [this#lift_loc (this#lift_option this#string) x0;
+ this#lift_Parsetree_module_type x1]))
+ method lift_Parsetree_with_constraint :
+ Parsetree.with_constraint -> 'res=
+ (function
+ | Parsetree.Pwith_type (x0, x1) ->
+ this#constr "Ast_411.Parsetree.with_constraint"
+ ("Pwith_type",
+ [this#lift_loc this#lift_Longident_t x0;
+ this#lift_Parsetree_type_declaration x1])
+ | Parsetree.Pwith_module (x0, x1) ->
+ this#constr "Ast_411.Parsetree.with_constraint"
+ ("Pwith_module",
+ [this#lift_loc this#lift_Longident_t x0;
+ this#lift_loc this#lift_Longident_t x1])
+ | Parsetree.Pwith_typesubst (x0, x1) ->
+ this#constr "Ast_411.Parsetree.with_constraint"
+ ("Pwith_typesubst",
+ [this#lift_loc this#lift_Longident_t x0;
+ this#lift_Parsetree_type_declaration x1])
+ | Parsetree.Pwith_modsubst (x0, x1) ->
+ this#constr "Ast_411.Parsetree.with_constraint"
+ ("Pwith_modsubst",
+ [this#lift_loc this#lift_Longident_t x0;
+ this#lift_loc this#lift_Longident_t x1]) : Parsetree.with_constraint
+ -> 'res)
+ method lift_Parsetree_signature : Parsetree.signature -> 'res=
+ (fun x -> this#list (List.map this#lift_Parsetree_signature_item x) :
+ Parsetree.signature -> 'res)
+ method lift_Parsetree_signature_item :
+ Parsetree.signature_item -> 'res=
+ (fun
+ { Parsetree.psig_desc = psig_desc;
+ Parsetree.psig_loc = psig_loc }
+ ->
+ this#record "Ast_411.Parsetree.signature_item"
+ [("psig_desc",
+ (this#lift_Parsetree_signature_item_desc psig_desc));
+ ("psig_loc", (this#lift_Location_t psig_loc))] : Parsetree.signature_item
+ -> 'res)
+ method lift_Parsetree_signature_item_desc :
+ Parsetree.signature_item_desc -> 'res=
+ (function
+ | Parsetree.Psig_value x0 ->
+ this#constr "Ast_411.Parsetree.signature_item_desc"
+ ("Psig_value", [this#lift_Parsetree_value_description x0])
+ | Parsetree.Psig_type (x0, x1) ->
+ this#constr "Ast_411.Parsetree.signature_item_desc"
+ ("Psig_type",
+ [this#lift_rec_flag x0;
+ this#list (List.map this#lift_Parsetree_type_declaration x1)])
+ | Parsetree.Psig_typesubst x0 ->
+ this#constr "Ast_411.Parsetree.signature_item_desc"
+ ("Psig_typesubst",
+ [this#list (List.map this#lift_Parsetree_type_declaration x0)])
+ | Parsetree.Psig_typext x0 ->
+ this#constr "Ast_411.Parsetree.signature_item_desc"
+ ("Psig_typext", [this#lift_Parsetree_type_extension x0])
+ | Parsetree.Psig_exception x0 ->
+ this#constr "Ast_411.Parsetree.signature_item_desc"
+ ("Psig_exception", [this#lift_Parsetree_type_exception x0])
+ | Parsetree.Psig_module x0 ->
+ this#constr "Ast_411.Parsetree.signature_item_desc"
+ ("Psig_module", [this#lift_Parsetree_module_declaration x0])
+ | Parsetree.Psig_modsubst x0 ->
+ this#constr "Ast_411.Parsetree.signature_item_desc"
+ ("Psig_modsubst", [this#lift_Parsetree_module_substitution x0])
+ | Parsetree.Psig_recmodule x0 ->
+ this#constr "Ast_411.Parsetree.signature_item_desc"
+ ("Psig_recmodule",
+ [this#list
+ (List.map this#lift_Parsetree_module_declaration x0)])
+ | Parsetree.Psig_modtype x0 ->
+ this#constr "Ast_411.Parsetree.signature_item_desc"
+ ("Psig_modtype",
+ [this#lift_Parsetree_module_type_declaration x0])
+ | Parsetree.Psig_open x0 ->
+ this#constr "Ast_411.Parsetree.signature_item_desc"
+ ("Psig_open", [this#lift_Parsetree_open_description x0])
+ | Parsetree.Psig_include x0 ->
+ this#constr "Ast_411.Parsetree.signature_item_desc"
+ ("Psig_include", [this#lift_Parsetree_include_description x0])
+ | Parsetree.Psig_class x0 ->
+ this#constr "Ast_411.Parsetree.signature_item_desc"
+ ("Psig_class",
+ [this#list (List.map this#lift_Parsetree_class_description x0)])
+ | Parsetree.Psig_class_type x0 ->
+ this#constr "Ast_411.Parsetree.signature_item_desc"
+ ("Psig_class_type",
+ [this#list
+ (List.map this#lift_Parsetree_class_type_declaration x0)])
+ | Parsetree.Psig_attribute x0 ->
+ this#constr "Ast_411.Parsetree.signature_item_desc"
+ ("Psig_attribute", [this#lift_Parsetree_attribute x0])
+ | Parsetree.Psig_extension (x0, x1) ->
+ this#constr "Ast_411.Parsetree.signature_item_desc"
+ ("Psig_extension",
+ [this#lift_Parsetree_extension x0;
+ this#lift_Parsetree_attributes x1]) : Parsetree.signature_item_desc
+ -> 'res)
+ method lift_Parsetree_class_type_declaration :
+ Parsetree.class_type_declaration -> 'res=
+ (fun x ->
+ this#lift_Parsetree_class_infos this#lift_Parsetree_class_type x :
+ Parsetree.class_type_declaration -> 'res)
+ method lift_Parsetree_class_description :
+ Parsetree.class_description -> 'res=
+ (fun x ->
+ this#lift_Parsetree_class_infos this#lift_Parsetree_class_type x :
+ Parsetree.class_description -> 'res)
+ method lift_Parsetree_class_type : Parsetree.class_type -> 'res=
+ (fun
+ { Parsetree.pcty_desc = pcty_desc;
+ Parsetree.pcty_loc = pcty_loc;
+ Parsetree.pcty_attributes = pcty_attributes }
+ ->
+ this#record "Ast_411.Parsetree.class_type"
+ [("pcty_desc", (this#lift_Parsetree_class_type_desc pcty_desc));
+ ("pcty_loc", (this#lift_Location_t pcty_loc));
+ ("pcty_attributes",
+ (this#lift_Parsetree_attributes pcty_attributes))] : Parsetree.class_type
+ ->
+ 'res)
+ method lift_Parsetree_class_type_desc :
+ Parsetree.class_type_desc -> 'res=
+ (function
+ | Parsetree.Pcty_constr (x0, x1) ->
+ this#constr "Ast_411.Parsetree.class_type_desc"
+ ("Pcty_constr",
+ [this#lift_loc this#lift_Longident_t x0;
+ this#list (List.map this#lift_Parsetree_core_type x1)])
+ | Parsetree.Pcty_signature x0 ->
+ this#constr "Ast_411.Parsetree.class_type_desc"
+ ("Pcty_signature", [this#lift_Parsetree_class_signature x0])
+ | Parsetree.Pcty_arrow (x0, x1, x2) ->
+ this#constr "Ast_411.Parsetree.class_type_desc"
+ ("Pcty_arrow",
+ [this#lift_arg_label x0;
+ this#lift_Parsetree_core_type x1;
+ this#lift_Parsetree_class_type x2])
+ | Parsetree.Pcty_extension x0 ->
+ this#constr "Ast_411.Parsetree.class_type_desc"
+ ("Pcty_extension", [this#lift_Parsetree_extension x0])
+ | Parsetree.Pcty_open (x0, x1) ->
+ this#constr "Ast_411.Parsetree.class_type_desc"
+ ("Pcty_open",
+ [this#lift_Parsetree_open_description x0;
+ this#lift_Parsetree_class_type x1]) : Parsetree.class_type_desc
+ -> 'res)
+ method lift_Parsetree_class_signature :
+ Parsetree.class_signature -> 'res=
+ (fun
+ { Parsetree.pcsig_self = pcsig_self;
+ Parsetree.pcsig_fields = pcsig_fields }
+ ->
+ this#record "Ast_411.Parsetree.class_signature"
+ [("pcsig_self", (this#lift_Parsetree_core_type pcsig_self));
+ ("pcsig_fields",
+ (this#list
+ (List.map this#lift_Parsetree_class_type_field pcsig_fields)))] :
+ Parsetree.class_signature -> 'res)
+ method lift_Parsetree_class_type_field :
+ Parsetree.class_type_field -> 'res=
+ (fun
+ { Parsetree.pctf_desc = pctf_desc;
+ Parsetree.pctf_loc = pctf_loc;
+ Parsetree.pctf_attributes = pctf_attributes }
+ ->
+ this#record "Ast_411.Parsetree.class_type_field"
+ [("pctf_desc",
+ (this#lift_Parsetree_class_type_field_desc pctf_desc));
+ ("pctf_loc", (this#lift_Location_t pctf_loc));
+ ("pctf_attributes",
+ (this#lift_Parsetree_attributes pctf_attributes))] : Parsetree.class_type_field
+ ->
+ 'res)
+ method lift_Parsetree_class_type_field_desc :
+ Parsetree.class_type_field_desc -> 'res=
+ (function
+ | Parsetree.Pctf_inherit x0 ->
+ this#constr "Ast_411.Parsetree.class_type_field_desc"
+ ("Pctf_inherit", [this#lift_Parsetree_class_type x0])
+ | Parsetree.Pctf_val x0 ->
+ this#constr "Ast_411.Parsetree.class_type_field_desc"
+ ("Pctf_val",
+ [(let (x0, x1, x2, x3) = x0 in
+ this#tuple
+ [this#lift_loc this#lift_label x0;
+ this#lift_mutable_flag x1;
+ this#lift_virtual_flag x2;
+ this#lift_Parsetree_core_type x3])])
+ | Parsetree.Pctf_method x0 ->
+ this#constr "Ast_411.Parsetree.class_type_field_desc"
+ ("Pctf_method",
+ [(let (x0, x1, x2, x3) = x0 in
+ this#tuple
+ [this#lift_loc this#lift_label x0;
+ this#lift_private_flag x1;
+ this#lift_virtual_flag x2;
+ this#lift_Parsetree_core_type x3])])
+ | Parsetree.Pctf_constraint x0 ->
+ this#constr "Ast_411.Parsetree.class_type_field_desc"
+ ("Pctf_constraint",
+ [(let (x0, x1) = x0 in
+ this#tuple
+ [this#lift_Parsetree_core_type x0;
+ this#lift_Parsetree_core_type x1])])
+ | Parsetree.Pctf_attribute x0 ->
+ this#constr "Ast_411.Parsetree.class_type_field_desc"
+ ("Pctf_attribute", [this#lift_Parsetree_attribute x0])
+ | Parsetree.Pctf_extension x0 ->
+ this#constr "Ast_411.Parsetree.class_type_field_desc"
+ ("Pctf_extension", [this#lift_Parsetree_extension x0]) :
+ Parsetree.class_type_field_desc -> 'res)
+ method lift_Parsetree_extension : Parsetree.extension -> 'res=
+ (fun x ->
+ let (x0, x1) = x in
+ this#tuple
+ [this#lift_loc this#string x0; this#lift_Parsetree_payload x1] :
+ Parsetree.extension -> 'res)
+ method lift_Parsetree_class_infos :
+ 'f0 . ('f0 -> 'res) -> 'f0 Parsetree.class_infos -> 'res= fun
+ (type f0) ->
+ (fun f0 ->
+ fun
+ { Parsetree.pci_virt = pci_virt;
+ Parsetree.pci_params = pci_params;
+ Parsetree.pci_name = pci_name;
+ Parsetree.pci_expr = pci_expr;
+ Parsetree.pci_loc = pci_loc;
+ Parsetree.pci_attributes = pci_attributes }
+ ->
+ this#record "Ast_411.Parsetree.class_infos"
+ [("pci_virt", (this#lift_virtual_flag pci_virt));
+ ("pci_params",
+ (this#list
+ (List.map
+ (fun x ->
+ let (x0, x1) = x in
+ this#tuple
+ [this#lift_Parsetree_core_type x0;
+ this#lift_variance x1]) pci_params)));
+ ("pci_name", (this#lift_loc this#string pci_name));
+ ("pci_expr", (f0 pci_expr));
+ ("pci_loc", (this#lift_Location_t pci_loc));
+ ("pci_attributes",
+ (this#lift_Parsetree_attributes pci_attributes))] : (f0 ->
+ 'res) ->
+ f0
+ Parsetree.class_infos
+ ->
+ 'res)
+ method lift_virtual_flag :
+ Migrate_parsetree__Ast_411.Asttypes.virtual_flag -> 'res=
+ (function
+ | Migrate_parsetree__Ast_411.Asttypes.Virtual ->
+ this#constr "Migrate_parsetree__Ast_411.Asttypes.virtual_flag"
+ ("Virtual", [])
+ | Migrate_parsetree__Ast_411.Asttypes.Concrete ->
+ this#constr "Migrate_parsetree__Ast_411.Asttypes.virtual_flag"
+ ("Concrete", []) : Migrate_parsetree__Ast_411.Asttypes.virtual_flag
+ -> 'res)
+ method lift_Parsetree_include_description :
+ Parsetree.include_description -> 'res=
+ (fun x ->
+ this#lift_Parsetree_include_infos this#lift_Parsetree_module_type x :
+ Parsetree.include_description -> 'res)
+ method lift_Parsetree_include_infos :
+ 'f0 . ('f0 -> 'res) -> 'f0 Parsetree.include_infos -> 'res= fun
+ (type f0) ->
+ (fun f0 ->
+ fun
+ { Parsetree.pincl_mod = pincl_mod;
+ Parsetree.pincl_loc = pincl_loc;
+ Parsetree.pincl_attributes = pincl_attributes }
+ ->
+ this#record "Ast_411.Parsetree.include_infos"
+ [("pincl_mod", (f0 pincl_mod));
+ ("pincl_loc", (this#lift_Location_t pincl_loc));
+ ("pincl_attributes",
+ (this#lift_Parsetree_attributes pincl_attributes))] :
+ (f0 -> 'res) -> f0 Parsetree.include_infos -> 'res)
+ method lift_Parsetree_open_description :
+ Parsetree.open_description -> 'res=
+ (fun x ->
+ this#lift_Parsetree_open_infos
+ (fun x -> this#lift_loc this#lift_Longident_t x) x : Parsetree.open_description
+ ->
+ 'res)
+ method lift_Parsetree_open_infos :
+ 'f0 . ('f0 -> 'res) -> 'f0 Parsetree.open_infos -> 'res= fun
+ (type f0) ->
+ (fun f0 ->
+ fun
+ { Parsetree.popen_expr = popen_expr;
+ Parsetree.popen_override = popen_override;
+ Parsetree.popen_loc = popen_loc;
+ Parsetree.popen_attributes = popen_attributes }
+ ->
+ this#record "Ast_411.Parsetree.open_infos"
+ [("popen_expr", (f0 popen_expr));
+ ("popen_override", (this#lift_override_flag popen_override));
+ ("popen_loc", (this#lift_Location_t popen_loc));
+ ("popen_attributes",
+ (this#lift_Parsetree_attributes popen_attributes))] :
+ (f0 -> 'res) -> f0 Parsetree.open_infos -> 'res)
+ method lift_override_flag :
+ Migrate_parsetree__Ast_411.Asttypes.override_flag -> 'res=
+ (function
+ | Migrate_parsetree__Ast_411.Asttypes.Override ->
+ this#constr "Migrate_parsetree__Ast_411.Asttypes.override_flag"
+ ("Override", [])
+ | Migrate_parsetree__Ast_411.Asttypes.Fresh ->
+ this#constr "Migrate_parsetree__Ast_411.Asttypes.override_flag"
+ ("Fresh", []) : Migrate_parsetree__Ast_411.Asttypes.override_flag
+ -> 'res)
+ method lift_Parsetree_module_type_declaration :
+ Parsetree.module_type_declaration -> 'res=
+ (fun
+ { Parsetree.pmtd_name = pmtd_name;
+ Parsetree.pmtd_type = pmtd_type;
+ Parsetree.pmtd_attributes = pmtd_attributes;
+ Parsetree.pmtd_loc = pmtd_loc }
+ ->
+ this#record "Ast_411.Parsetree.module_type_declaration"
+ [("pmtd_name", (this#lift_loc this#string pmtd_name));
+ ("pmtd_type",
+ (this#lift_option this#lift_Parsetree_module_type pmtd_type));
+ ("pmtd_attributes",
+ (this#lift_Parsetree_attributes pmtd_attributes));
+ ("pmtd_loc", (this#lift_Location_t pmtd_loc))] : Parsetree.module_type_declaration
+ -> 'res)
+ method lift_Parsetree_module_substitution :
+ Parsetree.module_substitution -> 'res=
+ (fun
+ { Parsetree.pms_name = pms_name;
+ Parsetree.pms_manifest = pms_manifest;
+ Parsetree.pms_attributes = pms_attributes;
+ Parsetree.pms_loc = pms_loc }
+ ->
+ this#record "Ast_411.Parsetree.module_substitution"
+ [("pms_name", (this#lift_loc this#string pms_name));
+ ("pms_manifest",
+ (this#lift_loc this#lift_Longident_t pms_manifest));
+ ("pms_attributes",
+ (this#lift_Parsetree_attributes pms_attributes));
+ ("pms_loc", (this#lift_Location_t pms_loc))] : Parsetree.module_substitution
+ -> 'res)
+ method lift_Parsetree_module_declaration :
+ Parsetree.module_declaration -> 'res=
+ (fun
+ { Parsetree.pmd_name = pmd_name;
+ Parsetree.pmd_type = pmd_type;
+ Parsetree.pmd_attributes = pmd_attributes;
+ Parsetree.pmd_loc = pmd_loc }
+ ->
+ this#record "Ast_411.Parsetree.module_declaration"
+ [("pmd_name", (this#lift_loc (this#lift_option this#string) pmd_name));
+ ("pmd_type", (this#lift_Parsetree_module_type pmd_type));
+ ("pmd_attributes",
+ (this#lift_Parsetree_attributes pmd_attributes));
+ ("pmd_loc", (this#lift_Location_t pmd_loc))] : Parsetree.module_declaration
+ -> 'res)
+ method lift_Parsetree_type_exception :
+ Parsetree.type_exception -> 'res=
+ (fun
+ { Parsetree.ptyexn_constructor = ptyexn_constructor;
+ Parsetree.ptyexn_loc = ptyexn_loc;
+ Parsetree.ptyexn_attributes = ptyexn_attributes }
+ ->
+ this#record "Ast_411.Parsetree.type_exception"
+ [("ptyexn_constructor",
+ (this#lift_Parsetree_extension_constructor ptyexn_constructor));
+ ("ptyexn_loc", (this#lift_Location_t ptyexn_loc));
+ ("ptyexn_attributes",
+ (this#lift_Parsetree_attributes ptyexn_attributes))] : Parsetree.type_exception
+ ->
+ 'res)
+ method lift_Parsetree_type_extension :
+ Parsetree.type_extension -> 'res=
+ (fun
+ { Parsetree.ptyext_path = ptyext_path;
+ Parsetree.ptyext_params = ptyext_params;
+ Parsetree.ptyext_constructors = ptyext_constructors;
+ Parsetree.ptyext_private = ptyext_private;
+ Parsetree.ptyext_loc = ptyext_loc;
+ Parsetree.ptyext_attributes = ptyext_attributes }
+ ->
+ this#record "Ast_411.Parsetree.type_extension"
+ [("ptyext_path",
+ (this#lift_loc this#lift_Longident_t ptyext_path));
+ ("ptyext_params",
+ (this#list
+ (List.map
+ (fun x ->
+ let (x0, x1) = x in
+ this#tuple
+ [this#lift_Parsetree_core_type x0;
+ this#lift_variance x1]) ptyext_params)));
+ ("ptyext_constructors",
+ (this#list
+ (List.map this#lift_Parsetree_extension_constructor
+ ptyext_constructors)));
+ ("ptyext_private", (this#lift_private_flag ptyext_private));
+ ("ptyext_loc", (this#lift_Location_t ptyext_loc));
+ ("ptyext_attributes",
+ (this#lift_Parsetree_attributes ptyext_attributes))] : Parsetree.type_extension
+ ->
+ 'res)
+ method lift_Parsetree_extension_constructor :
+ Parsetree.extension_constructor -> 'res=
+ (fun
+ { Parsetree.pext_name = pext_name;
+ Parsetree.pext_kind = pext_kind;
+ Parsetree.pext_loc = pext_loc;
+ Parsetree.pext_attributes = pext_attributes }
+ ->
+ this#record "Ast_411.Parsetree.extension_constructor"
+ [("pext_name", (this#lift_loc this#string pext_name));
+ ("pext_kind",
+ (this#lift_Parsetree_extension_constructor_kind pext_kind));
+ ("pext_loc", (this#lift_Location_t pext_loc));
+ ("pext_attributes",
+ (this#lift_Parsetree_attributes pext_attributes))] : Parsetree.extension_constructor
+ ->
+ 'res)
+ method lift_Parsetree_extension_constructor_kind :
+ Parsetree.extension_constructor_kind -> 'res=
+ (function
+ | Parsetree.Pext_decl (x0, x1) ->
+ this#constr "Ast_411.Parsetree.extension_constructor_kind"
+ ("Pext_decl",
+ [this#lift_Parsetree_constructor_arguments x0;
+ this#lift_option this#lift_Parsetree_core_type x1])
+ | Parsetree.Pext_rebind x0 ->
+ this#constr "Ast_411.Parsetree.extension_constructor_kind"
+ ("Pext_rebind", [this#lift_loc this#lift_Longident_t x0]) :
+ Parsetree.extension_constructor_kind -> 'res)
+ method lift_Parsetree_type_declaration :
+ Parsetree.type_declaration -> 'res=
+ (fun
+ { Parsetree.ptype_name = ptype_name;
+ Parsetree.ptype_params = ptype_params;
+ Parsetree.ptype_cstrs = ptype_cstrs;
+ Parsetree.ptype_kind = ptype_kind;
+ Parsetree.ptype_private = ptype_private;
+ Parsetree.ptype_manifest = ptype_manifest;
+ Parsetree.ptype_attributes = ptype_attributes;
+ Parsetree.ptype_loc = ptype_loc }
+ ->
+ this#record "Ast_411.Parsetree.type_declaration"
+ [("ptype_name", (this#lift_loc this#string ptype_name));
+ ("ptype_params",
+ (this#list
+ (List.map
+ (fun x ->
+ let (x0, x1) = x in
+ this#tuple
+ [this#lift_Parsetree_core_type x0;
+ this#lift_variance x1]) ptype_params)));
+ ("ptype_cstrs",
+ (this#list
+ (List.map
+ (fun x ->
+ let (x0, x1, x2) = x in
+ this#tuple
+ [this#lift_Parsetree_core_type x0;
+ this#lift_Parsetree_core_type x1;
+ this#lift_Location_t x2]) ptype_cstrs)));
+ ("ptype_kind", (this#lift_Parsetree_type_kind ptype_kind));
+ ("ptype_private", (this#lift_private_flag ptype_private));
+ ("ptype_manifest",
+ (this#lift_option this#lift_Parsetree_core_type ptype_manifest));
+ ("ptype_attributes",
+ (this#lift_Parsetree_attributes ptype_attributes));
+ ("ptype_loc", (this#lift_Location_t ptype_loc))] : Parsetree.type_declaration
+ -> 'res)
+ method lift_private_flag :
+ Migrate_parsetree__Ast_411.Asttypes.private_flag -> 'res=
+ (function
+ | Migrate_parsetree__Ast_411.Asttypes.Private ->
+ this#constr "Migrate_parsetree__Ast_411.Asttypes.private_flag"
+ ("Private", [])
+ | Migrate_parsetree__Ast_411.Asttypes.Public ->
+ this#constr "Migrate_parsetree__Ast_411.Asttypes.private_flag"
+ ("Public", []) : Migrate_parsetree__Ast_411.Asttypes.private_flag
+ -> 'res)
+ method lift_Parsetree_type_kind : Parsetree.type_kind -> 'res=
+ (function
+ | Parsetree.Ptype_abstract ->
+ this#constr "Ast_411.Parsetree.type_kind" ("Ptype_abstract", [])
+ | Parsetree.Ptype_variant x0 ->
+ this#constr "Ast_411.Parsetree.type_kind"
+ ("Ptype_variant",
+ [this#list
+ (List.map this#lift_Parsetree_constructor_declaration x0)])
+ | Parsetree.Ptype_record x0 ->
+ this#constr "Ast_411.Parsetree.type_kind"
+ ("Ptype_record",
+ [this#list (List.map this#lift_Parsetree_label_declaration x0)])
+ | Parsetree.Ptype_open ->
+ this#constr "Ast_411.Parsetree.type_kind" ("Ptype_open", []) :
+ Parsetree.type_kind -> 'res)
+ method lift_Parsetree_constructor_declaration :
+ Parsetree.constructor_declaration -> 'res=
+ (fun
+ { Parsetree.pcd_name = pcd_name;
+ Parsetree.pcd_args = pcd_args;
+ Parsetree.pcd_res = pcd_res;
+ Parsetree.pcd_loc = pcd_loc;
+ Parsetree.pcd_attributes = pcd_attributes }
+ ->
+ this#record "Ast_411.Parsetree.constructor_declaration"
+ [("pcd_name", (this#lift_loc this#string pcd_name));
+ ("pcd_args", (this#lift_Parsetree_constructor_arguments pcd_args));
+ ("pcd_res",
+ (this#lift_option this#lift_Parsetree_core_type pcd_res));
+ ("pcd_loc", (this#lift_Location_t pcd_loc));
+ ("pcd_attributes",
+ (this#lift_Parsetree_attributes pcd_attributes))] : Parsetree.constructor_declaration
+ ->
+ 'res)
+ method lift_Parsetree_constructor_arguments :
+ Parsetree.constructor_arguments -> 'res=
+ (function
+ | Parsetree.Pcstr_tuple x0 ->
+ this#constr "Ast_411.Parsetree.constructor_arguments"
+ ("Pcstr_tuple",
+ [this#list (List.map this#lift_Parsetree_core_type x0)])
+ | Parsetree.Pcstr_record x0 ->
+ this#constr "Ast_411.Parsetree.constructor_arguments"
+ ("Pcstr_record",
+ [this#list (List.map this#lift_Parsetree_label_declaration x0)]) :
+ Parsetree.constructor_arguments -> 'res)
+ method lift_Parsetree_label_declaration :
+ Parsetree.label_declaration -> 'res=
+ (fun
+ { Parsetree.pld_name = pld_name;
+ Parsetree.pld_mutable = pld_mutable;
+ Parsetree.pld_type = pld_type;
+ Parsetree.pld_loc = pld_loc;
+ Parsetree.pld_attributes = pld_attributes }
+ ->
+ this#record "Ast_411.Parsetree.label_declaration"
+ [("pld_name", (this#lift_loc this#string pld_name));
+ ("pld_mutable", (this#lift_mutable_flag pld_mutable));
+ ("pld_type", (this#lift_Parsetree_core_type pld_type));
+ ("pld_loc", (this#lift_Location_t pld_loc));
+ ("pld_attributes",
+ (this#lift_Parsetree_attributes pld_attributes))] : Parsetree.label_declaration
+ ->
+ 'res)
+ method lift_mutable_flag :
+ Migrate_parsetree__Ast_411.Asttypes.mutable_flag -> 'res=
+ (function
+ | Migrate_parsetree__Ast_411.Asttypes.Immutable ->
+ this#constr "Migrate_parsetree__Ast_411.Asttypes.mutable_flag"
+ ("Immutable", [])
+ | Migrate_parsetree__Ast_411.Asttypes.Mutable ->
+ this#constr "Migrate_parsetree__Ast_411.Asttypes.mutable_flag"
+ ("Mutable", []) : Migrate_parsetree__Ast_411.Asttypes.mutable_flag
+ -> 'res)
+ method lift_variance :
+ Migrate_parsetree__Ast_411.Asttypes.variance -> 'res=
+ (function
+ | Migrate_parsetree__Ast_411.Asttypes.Covariant ->
+ this#constr "Migrate_parsetree__Ast_411.Asttypes.variance"
+ ("Covariant", [])
+ | Migrate_parsetree__Ast_411.Asttypes.Contravariant ->
+ this#constr "Migrate_parsetree__Ast_411.Asttypes.variance"
+ ("Contravariant", [])
+ | Migrate_parsetree__Ast_411.Asttypes.Invariant ->
+ this#constr "Migrate_parsetree__Ast_411.Asttypes.variance"
+ ("Invariant", []) : Migrate_parsetree__Ast_411.Asttypes.variance
+ -> 'res)
+ method lift_Parsetree_value_description :
+ Parsetree.value_description -> 'res=
+ (fun
+ { Parsetree.pval_name = pval_name;
+ Parsetree.pval_type = pval_type;
+ Parsetree.pval_prim = pval_prim;
+ Parsetree.pval_attributes = pval_attributes;
+ Parsetree.pval_loc = pval_loc }
+ ->
+ this#record "Ast_411.Parsetree.value_description"
+ [("pval_name", (this#lift_loc this#string pval_name));
+ ("pval_type", (this#lift_Parsetree_core_type pval_type));
+ ("pval_prim", (this#list (List.map this#string pval_prim)));
+ ("pval_attributes",
+ (this#lift_Parsetree_attributes pval_attributes));
+ ("pval_loc", (this#lift_Location_t pval_loc))] : Parsetree.value_description
+ -> 'res)
+ method lift_Parsetree_object_field_desc :
+ Parsetree.object_field_desc -> 'res=
+ (function
+ | Parsetree.Otag (x0, x1) ->
+ this#constr "Ast_411.Parsetree.object_field_desc"
+ ("Otag",
+ [this#lift_loc this#lift_label x0;
+ this#lift_Parsetree_core_type x1])
+ | Parsetree.Oinherit x0 ->
+ this#constr "Ast_411.Parsetree.object_field_desc"
+ ("Oinherit", [this#lift_Parsetree_core_type x0]) : Parsetree.object_field_desc
+ ->
+ 'res)
+ method lift_arg_label :
+ Migrate_parsetree__Ast_411.Asttypes.arg_label -> 'res=
+ (function
+ | Migrate_parsetree__Ast_411.Asttypes.Nolabel ->
+ this#constr "Migrate_parsetree__Ast_411.Asttypes.arg_label"
+ ("Nolabel", [])
+ | Migrate_parsetree__Ast_411.Asttypes.Labelled x0 ->
+ this#constr "Migrate_parsetree__Ast_411.Asttypes.arg_label"
+ ("Labelled", [this#string x0])
+ | Migrate_parsetree__Ast_411.Asttypes.Optional x0 ->
+ this#constr "Migrate_parsetree__Ast_411.Asttypes.arg_label"
+ ("Optional", [this#string x0]) : Migrate_parsetree__Ast_411.Asttypes.arg_label
+ -> 'res)
+ method lift_closed_flag :
+ Migrate_parsetree__Ast_411.Asttypes.closed_flag -> 'res=
+ (function
+ | Migrate_parsetree__Ast_411.Asttypes.Closed ->
+ this#constr "Migrate_parsetree__Ast_411.Asttypes.closed_flag"
+ ("Closed", [])
+ | Migrate_parsetree__Ast_411.Asttypes.Open ->
+ this#constr "Migrate_parsetree__Ast_411.Asttypes.closed_flag"
+ ("Open", []) : Migrate_parsetree__Ast_411.Asttypes.closed_flag
+ -> 'res)
+ method lift_label : Migrate_parsetree__Ast_411.Asttypes.label -> 'res=
+ (this#string : Migrate_parsetree__Ast_411.Asttypes.label -> 'res)
+ method lift_rec_flag :
+ Migrate_parsetree__Ast_411.Asttypes.rec_flag -> 'res=
+ (function
+ | Migrate_parsetree__Ast_411.Asttypes.Nonrecursive ->
+ this#constr "Migrate_parsetree__Ast_411.Asttypes.rec_flag"
+ ("Nonrecursive", [])
+ | Migrate_parsetree__Ast_411.Asttypes.Recursive ->
+ this#constr "Migrate_parsetree__Ast_411.Asttypes.rec_flag"
+ ("Recursive", []) : Migrate_parsetree__Ast_411.Asttypes.rec_flag
+ -> 'res)
+ method lift_Parsetree_constant : Parsetree.constant -> 'res=
+ (function
+ | Parsetree.Pconst_integer (x0, x1) ->
+ this#constr "Ast_411.Parsetree.constant"
+ ("Pconst_integer",
+ [this#string x0; this#lift_option this#char x1])
+ | Parsetree.Pconst_char x0 ->
+ this#constr "Ast_411.Parsetree.constant"
+ ("Pconst_char", [this#char x0])
+ | Parsetree.Pconst_string (x0, x1, x2) ->
+ this#constr "Ast_411.Parsetree.constant"
+ ("Pconst_string",
+ [this#string x0;
+ this#lift_Location_t x1;
+ this#lift_option this#string x2])
+ | Parsetree.Pconst_float (x0, x1) ->
+ this#constr "Ast_411.Parsetree.constant"
+ ("Pconst_float",
+ [this#string x0; this#lift_option this#char x1]) : Parsetree.constant
+ ->
+ 'res)
+ method lift_option : 'f0 . ('f0 -> 'res) -> 'f0 option -> 'res= fun (type
+ f0) ->
+ (fun f0 ->
+ function
+ | None -> this#constr "option" ("None", [])
+ | Some x0 -> this#constr "option" ("Some", [f0 x0]) : (f0 -> 'res)
+ ->
+ f0 option ->
+ 'res)
+ method lift_Longident_t : Migrate_parsetree__Ast_411.Longident.t -> 'res=
+ (function
+ | Migrate_parsetree__Ast_411.Longident.Lident x0 ->
+ this#constr "Migrate_parsetree__Ast_411.Longident.t"
+ ("Lident", [this#string x0])
+ | Migrate_parsetree__Ast_411.Longident.Ldot (x0, x1) ->
+ this#constr "Migrate_parsetree__Ast_411.Longident.t"
+ ("Ldot", [this#lift_Longident_t x0; this#string x1])
+ | Migrate_parsetree__Ast_411.Longident.Lapply (x0, x1) ->
+ this#constr "Migrate_parsetree__Ast_411.Longident.t"
+ ("Lapply", [this#lift_Longident_t x0; this#lift_Longident_t x1]) :
+ Migrate_parsetree__Ast_411.Longident.t -> 'res)
+ method lift_loc :
+ 'f0 .
+ ('f0 -> 'res) -> 'f0 Migrate_parsetree__Ast_411.Asttypes.loc -> 'res=
+ fun (type f0) ->
+ (fun f0 ->
+ fun
+ { Migrate_parsetree__Ast_411.Asttypes.txt = txt;
+ Migrate_parsetree__Ast_411.Asttypes.loc = loc }
+ ->
+ this#record "Migrate_parsetree__Ast_411.Asttypes.loc"
+ [("txt", (f0 txt)); ("loc", (this#lift_Location_t loc))] :
+ (f0 -> 'res) -> f0 Migrate_parsetree__Ast_411.Asttypes.loc -> 'res)
+ method lift_Location_t : Migrate_parsetree__Ast_411.Location.t -> 'res=
+ (fun
+ { Migrate_parsetree__Ast_411.Location.loc_start = loc_start;
+ Migrate_parsetree__Ast_411.Location.loc_end = loc_end;
+ Migrate_parsetree__Ast_411.Location.loc_ghost = loc_ghost }
+ ->
+ this#record "Migrate_parsetree__Ast_411.Location.t"
+ [("loc_start", (this#lift_position loc_start));
+ ("loc_end", (this#lift_position loc_end));
+ ("loc_ghost", (this#lift_bool loc_ghost))] : Migrate_parsetree__Ast_411.Location.t
+ -> 'res)
+ method lift_bool : bool -> 'res=
+ (function
+ | false -> this#constr "bool" ("false", [])
+ | true -> this#constr "bool" ("true", []) : bool -> 'res)
+ method lift_position : Lexing.position -> 'res=
+ (fun
+ { Lexing.pos_fname = pos_fname;
+ Lexing.pos_lnum = pos_lnum;
+ Lexing.pos_bol = pos_bol; Lexing.pos_cnum = pos_cnum
+ }
+ ->
+ this#record "Lexing.position"
+ [("pos_fname", (this#string pos_fname));
+ ("pos_lnum", (this#int pos_lnum));
+ ("pos_bol", (this#int pos_bol));
+ ("pos_cnum", (this#int pos_cnum))] : Lexing.position ->
+ 'res)
+
+ method lift_loc_stack : Location.t list -> 'res =
+ fun l -> this#list (List.map this#lift_Location_t l)
+ end