sig
  type mapper = {
    attribute 
      Ast_mapper.mapper -> Parsetree.attribute -> Parsetree.attribute;
    attributes 
      Ast_mapper.mapper ->
      Parsetree.attribute list -> Parsetree.attribute list;
    binding_op 
      Ast_mapper.mapper -> Parsetree.binding_op -> Parsetree.binding_op;
    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;
    constant : Ast_mapper.mapper -> Parsetree.constant -> Parsetree.constant;
    constructor_declaration 
      Ast_mapper.mapper ->
      Parsetree.constructor_declaration -> Parsetree.constructor_declaration;
    directive_argument 
      Ast_mapper.mapper ->
      Parsetree.directive_argument -> Parsetree.directive_argument;
    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_substitution 
      Ast_mapper.mapper ->
      Parsetree.module_substitution -> Parsetree.module_substitution;
    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_declaration 
      Ast_mapper.mapper ->
      Parsetree.open_declaration -> Parsetree.open_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;
    toplevel_directive 
      Ast_mapper.mapper ->
      Parsetree.toplevel_directive -> Parsetree.toplevel_directive;
    toplevel_phrase 
      Ast_mapper.mapper ->
      Parsetree.toplevel_phrase -> Parsetree.toplevel_phrase;
    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_exception 
      Ast_mapper.mapper ->
      Parsetree.type_exception -> Parsetree.type_exception;
    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) Stdlib.ref
  val register : string -> (string list -> Ast_mapper.mapper) -> unit
  val map_opt : ('-> '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