sig
  type mapper = {
    attribute :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.attribute -> Ast_402.Parsetree.attribute;
    attributes :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.attribute list -> Ast_402.Parsetree.attribute list;
    case :
      Ast_402.??.mapper -> Ast_402.Parsetree.case -> Ast_402.Parsetree.case;
    cases :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.case list -> Ast_402.Parsetree.case list;
    class_declaration :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.class_declaration ->
      Ast_402.Parsetree.class_declaration;
    class_description :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.class_description ->
      Ast_402.Parsetree.class_description;
    class_expr :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.class_expr -> Ast_402.Parsetree.class_expr;
    class_field :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.class_field -> Ast_402.Parsetree.class_field;
    class_signature :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.class_signature -> Ast_402.Parsetree.class_signature;
    class_structure :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.class_structure -> Ast_402.Parsetree.class_structure;
    class_type :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.class_type -> Ast_402.Parsetree.class_type;
    class_type_declaration :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.class_type_declaration ->
      Ast_402.Parsetree.class_type_declaration;
    class_type_field :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.class_type_field ->
      Ast_402.Parsetree.class_type_field;
    constructor_declaration :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.constructor_declaration ->
      Ast_402.Parsetree.constructor_declaration;
    expr :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.expression -> Ast_402.Parsetree.expression;
    extension :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.extension -> Ast_402.Parsetree.extension;
    extension_constructor :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.extension_constructor ->
      Ast_402.Parsetree.extension_constructor;
    include_declaration :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.include_declaration ->
      Ast_402.Parsetree.include_declaration;
    include_description :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.include_description ->
      Ast_402.Parsetree.include_description;
    label_declaration :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.label_declaration ->
      Ast_402.Parsetree.label_declaration;
    location : Ast_402.??.mapper -> Location.t -> Location.t;
    module_binding :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.module_binding -> Ast_402.Parsetree.module_binding;
    module_declaration :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.module_declaration ->
      Ast_402.Parsetree.module_declaration;
    module_expr :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.module_expr -> Ast_402.Parsetree.module_expr;
    module_type :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.module_type -> Ast_402.Parsetree.module_type;
    module_type_declaration :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.module_type_declaration ->
      Ast_402.Parsetree.module_type_declaration;
    open_description :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.open_description ->
      Ast_402.Parsetree.open_description;
    pat :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.pattern -> Ast_402.Parsetree.pattern;
    payload :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.payload -> Ast_402.Parsetree.payload;
    signature :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.signature -> Ast_402.Parsetree.signature;
    signature_item :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.signature_item -> Ast_402.Parsetree.signature_item;
    structure :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.structure -> Ast_402.Parsetree.structure;
    structure_item :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.structure_item -> Ast_402.Parsetree.structure_item;
    typ :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.core_type -> Ast_402.Parsetree.core_type;
    type_declaration :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.type_declaration ->
      Ast_402.Parsetree.type_declaration;
    type_extension :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.type_extension -> Ast_402.Parsetree.type_extension;
    type_kind :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.type_kind -> Ast_402.Parsetree.type_kind;
    value_binding :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.value_binding -> Ast_402.Parsetree.value_binding;
    value_description :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.value_description ->
      Ast_402.Parsetree.value_description;
    with_constraint :
      Ast_402.??.mapper ->
      Ast_402.Parsetree.with_constraint -> Ast_402.Parsetree.with_constraint;
  }
  val default_mapper : Ast_402.??.mapper
  val map_opt : ('-> 'b) -> 'a option -> 'b option
  val extension_of_error : Location.error -> Ast_402.Parsetree.extension
  val attribute_of_warning :
    Location.t -> string -> Ast_402.Parsetree.attribute
end