functor (A : OCaml_version) (B : OCaml_version->
  sig
    val copy_structure :
      A.Ast.Parsetree.structure -> B.Ast.Parsetree.structure
    val copy_signature :
      A.Ast.Parsetree.signature -> B.Ast.Parsetree.signature
    val copy_toplevel_phrase :
      A.Ast.Parsetree.toplevel_phrase -> B.Ast.Parsetree.toplevel_phrase
    val copy_core_type :
      A.Ast.Parsetree.core_type -> B.Ast.Parsetree.core_type
    val copy_expression :
      A.Ast.Parsetree.expression -> B.Ast.Parsetree.expression
    val copy_pattern : A.Ast.Parsetree.pattern -> B.Ast.Parsetree.pattern
    val copy_case : A.Ast.Parsetree.case -> B.Ast.Parsetree.case
    val copy_type_declaration :
      A.Ast.Parsetree.type_declaration -> B.Ast.Parsetree.type_declaration
    val copy_type_extension :
      A.Ast.Parsetree.type_extension -> B.Ast.Parsetree.type_extension
    val copy_extension_constructor :
      A.Ast.Parsetree.extension_constructor ->
      B.Ast.Parsetree.extension_constructor
    val copy_out_value :
      A.Ast.Outcometree.out_value -> B.Ast.Outcometree.out_value
    val copy_out_type :
      A.Ast.Outcometree.out_type -> B.Ast.Outcometree.out_type
    val copy_out_class_type :
      A.Ast.Outcometree.out_class_type -> B.Ast.Outcometree.out_class_type
    val copy_out_module_type :
      A.Ast.Outcometree.out_module_type -> B.Ast.Outcometree.out_module_type
    val copy_out_sig_item :
      A.Ast.Outcometree.out_sig_item -> B.Ast.Outcometree.out_sig_item
    val copy_out_type_extension :
      A.Ast.Outcometree.out_type_extension ->
      B.Ast.Outcometree.out_type_extension
    val copy_out_phrase :
      A.Ast.Outcometree.out_phrase -> B.Ast.Outcometree.out_phrase
    val copy_mapper : A.Ast.Ast_mapper.mapper -> B.Ast.Ast_mapper.mapper
  end