# Module Ast_404.Ast_mapper

    module Ast_mapper: sig .. end

    type mapper = {

`` | `attribute : `mapper -> Ast_404.Parsetree.attribute -> Ast_404.Parsetree.attribute`;`
`` | `attributes : `mapper -> Ast_404.Parsetree.attribute list -> Ast_404.Parsetree.attribute list`;`
`` | `case : `mapper -> Ast_404.Parsetree.case -> Ast_404.Parsetree.case`;`
`` | `cases : `mapper -> Ast_404.Parsetree.case list -> Ast_404.Parsetree.case list`;`
`` | `class_declaration : `mapper -> Ast_404.Parsetree.class_declaration -> Ast_404.Parsetree.class_declaration`;`
`` | `class_description : `mapper -> Ast_404.Parsetree.class_description -> Ast_404.Parsetree.class_description`;`
`` | `class_expr : `mapper -> Ast_404.Parsetree.class_expr -> Ast_404.Parsetree.class_expr`;`
`` | `class_field : `mapper -> Ast_404.Parsetree.class_field -> Ast_404.Parsetree.class_field`;`
`` | `class_signature : `mapper -> Ast_404.Parsetree.class_signature -> Ast_404.Parsetree.class_signature`;`
`` | `class_structure : `mapper -> Ast_404.Parsetree.class_structure -> Ast_404.Parsetree.class_structure`;`
`` | `class_type : `mapper -> Ast_404.Parsetree.class_type -> Ast_404.Parsetree.class_type`;`
`` | `class_type_declaration : `mapper -> Ast_404.Parsetree.class_type_declaration -> Ast_404.Parsetree.class_type_declaration`;`
`` | `class_type_field : `mapper -> Ast_404.Parsetree.class_type_field -> Ast_404.Parsetree.class_type_field`;`
`` | `constructor_declaration : `mapper -> Ast_404.Parsetree.constructor_declaration -> Ast_404.Parsetree.constructor_declaration`;`
`` | `expr : `mapper -> Ast_404.Parsetree.expression -> Ast_404.Parsetree.expression`;`
`` | `extension : `mapper -> Ast_404.Parsetree.extension -> Ast_404.Parsetree.extension`;`
`` | `extension_constructor : `mapper -> Ast_404.Parsetree.extension_constructor -> Ast_404.Parsetree.extension_constructor`;`
`` | `include_declaration : `mapper -> Ast_404.Parsetree.include_declaration -> Ast_404.Parsetree.include_declaration`;`
`` | `include_description : `mapper -> Ast_404.Parsetree.include_description -> Ast_404.Parsetree.include_description`;`
`` | `label_declaration : `mapper -> Ast_404.Parsetree.label_declaration -> Ast_404.Parsetree.label_declaration`;`
`` | `location : `mapper -> Location.t -> Location.t`;`
`` | `module_binding : `mapper -> Ast_404.Parsetree.module_binding -> Ast_404.Parsetree.module_binding`;`
`` | `module_declaration : `mapper -> Ast_404.Parsetree.module_declaration -> Ast_404.Parsetree.module_declaration`;`
`` | `module_expr : `mapper -> Ast_404.Parsetree.module_expr -> Ast_404.Parsetree.module_expr`;`
`` | `module_type : `mapper -> Ast_404.Parsetree.module_type -> Ast_404.Parsetree.module_type`;`
`` | `module_type_declaration : `mapper -> Ast_404.Parsetree.module_type_declaration -> Ast_404.Parsetree.module_type_declaration`;`
`` | `open_description : `mapper -> Ast_404.Parsetree.open_description -> Ast_404.Parsetree.open_description`;`
`` | `pat : `mapper -> Ast_404.Parsetree.pattern -> Ast_404.Parsetree.pattern`;`
`` | `payload : `mapper -> Ast_404.Parsetree.payload -> Ast_404.Parsetree.payload`;`
`` | `signature : `mapper -> Ast_404.Parsetree.signature -> Ast_404.Parsetree.signature`;`
`` | `signature_item : `mapper -> Ast_404.Parsetree.signature_item -> Ast_404.Parsetree.signature_item`;`
`` | `structure : `mapper -> Ast_404.Parsetree.structure -> Ast_404.Parsetree.structure`;`
`` | `structure_item : `mapper -> Ast_404.Parsetree.structure_item -> Ast_404.Parsetree.structure_item`;`
`` | `typ : `mapper -> Ast_404.Parsetree.core_type -> Ast_404.Parsetree.core_type`;`
`` | `type_declaration : `mapper -> Ast_404.Parsetree.type_declaration -> Ast_404.Parsetree.type_declaration`;`
`` | `type_extension : `mapper -> Ast_404.Parsetree.type_extension -> Ast_404.Parsetree.type_extension`;`
`` | `type_kind : `mapper -> Ast_404.Parsetree.type_kind -> Ast_404.Parsetree.type_kind`;`
`` | `value_binding : `mapper -> Ast_404.Parsetree.value_binding -> Ast_404.Parsetree.value_binding`;`
`` | `value_description : `mapper -> Ast_404.Parsetree.value_description -> Ast_404.Parsetree.value_description`;`
`` | `with_constraint : `mapper -> Ast_404.Parsetree.with_constraint -> Ast_404.Parsetree.with_constraint`;`

}

    val map_opt : ('a -> 'b) -> 'a option -> 'b option

    val default_mapper : mapper

    val extension_of_error : Location.error -> Ast_404.Parsetree.extension

    val attribute_of_warning : Location.t -> string -> string Location.loc * Ast_404.Parsetree.payload