`sig type mapper = { attribute : Ast_mapper.mapper -> Parsetree.attribute -> Parsetree.attribute; attributes : Ast_mapper.mapper -> Parsetree.attribute list -> Parsetree.attribute list; case : Ast_mapper.mapper -> Parsetree.case -> Parsetree.case; cases : Ast_mapper.mapper -> Parsetree.case list -> Parsetree.case list; class_declaration : Ast_mapper.mapper -> Parsetree.class_declaration -> Parsetree.class_declaration; class_description : Ast_mapper.mapper -> Parsetree.class_description -> Parsetree.class_description; class_expr : Ast_mapper.mapper -> Parsetree.class_expr -> Parsetree.class_expr; class_field : Ast_mapper.mapper -> Parsetree.class_field -> Parsetree.class_field; class_signature : Ast_mapper.mapper -> Parsetree.class_signature -> Parsetree.class_signature; class_structure : Ast_mapper.mapper -> Parsetree.class_structure -> Parsetree.class_structure; class_type : Ast_mapper.mapper -> Parsetree.class_type -> Parsetree.class_type; class_type_declaration : Ast_mapper.mapper -> Parsetree.class_type_declaration -> Parsetree.class_type_declaration; class_type_field : Ast_mapper.mapper -> Parsetree.class_type_field -> Parsetree.class_type_field; constructor_declaration : Ast_mapper.mapper -> Parsetree.constructor_declaration -> Parsetree.constructor_declaration; expr : Ast_mapper.mapper -> Parsetree.expression -> Parsetree.expression; extension : Ast_mapper.mapper -> Parsetree.extension -> Parsetree.extension; extension_constructor : Ast_mapper.mapper -> Parsetree.extension_constructor -> Parsetree.extension_constructor; include_declaration : Ast_mapper.mapper -> Parsetree.include_declaration -> Parsetree.include_declaration; include_description : Ast_mapper.mapper -> Parsetree.include_description -> Parsetree.include_description; label_declaration : Ast_mapper.mapper -> Parsetree.label_declaration -> Parsetree.label_declaration; location : Ast_mapper.mapper -> Location.t -> Location.t; module_binding : Ast_mapper.mapper -> Parsetree.module_binding -> Parsetree.module_binding; module_declaration : Ast_mapper.mapper -> Parsetree.module_declaration -> Parsetree.module_declaration; module_expr : Ast_mapper.mapper -> Parsetree.module_expr -> Parsetree.module_expr; module_type : Ast_mapper.mapper -> Parsetree.module_type -> Parsetree.module_type; module_type_declaration : Ast_mapper.mapper -> Parsetree.module_type_declaration -> Parsetree.module_type_declaration; open_description : Ast_mapper.mapper -> Parsetree.open_description -> Parsetree.open_description; pat : Ast_mapper.mapper -> Parsetree.pattern -> Parsetree.pattern; payload : Ast_mapper.mapper -> Parsetree.payload -> Parsetree.payload; signature : Ast_mapper.mapper -> Parsetree.signature -> Parsetree.signature; signature_item : Ast_mapper.mapper -> Parsetree.signature_item -> Parsetree.signature_item; structure : Ast_mapper.mapper -> Parsetree.structure -> Parsetree.structure; structure_item : Ast_mapper.mapper -> Parsetree.structure_item -> Parsetree.structure_item; typ : Ast_mapper.mapper -> Parsetree.core_type -> Parsetree.core_type; type_declaration : Ast_mapper.mapper -> Parsetree.type_declaration -> Parsetree.type_declaration; type_extension : Ast_mapper.mapper -> Parsetree.type_extension -> Parsetree.type_extension; type_kind : Ast_mapper.mapper -> Parsetree.type_kind -> Parsetree.type_kind; value_binding : Ast_mapper.mapper -> Parsetree.value_binding -> Parsetree.value_binding; value_description : Ast_mapper.mapper -> Parsetree.value_description -> Parsetree.value_description; with_constraint : Ast_mapper.mapper -> Parsetree.with_constraint -> Parsetree.with_constraint; } val default_mapper : Ast_mapper.mapper val tool_name : unit -> string val apply : source:string -> target:string -> Ast_mapper.mapper -> unit val run_main : (string list -> Ast_mapper.mapper) -> unit val register_function : (string -> (string list -> Ast_mapper.mapper) -> unit) Pervasives.ref val register : string -> (string list -> Ast_mapper.mapper) -> unit val map_opt : ('a -> 'b) -> 'a option -> 'b option val extension_of_error : Location.error -> Parsetree.extension val attribute_of_warning : Location.t -> string -> Parsetree.attribute val add_ppx_context_str : tool_name:string -> Parsetree.structure -> Parsetree.structure val add_ppx_context_sig : tool_name:string -> Parsetree.signature -> Parsetree.signature val drop_ppx_context_str : restore:bool -> Parsetree.structure -> Parsetree.structure val drop_ppx_context_sig : restore:bool -> Parsetree.signature -> Parsetree.signature val set_cookie : string -> Parsetree.expression -> unit val get_cookie : string -> Parsetree.expression option end`