functor (Ast : Sig.Camlp4Ast->
  sig
    val constructors_arity : unit -> bool
    val error : Ast.Loc.t -> string -> 'a
    val char_of_char_token : Ast.Loc.t -> string -> char
    val string_of_string_token : Ast.Loc.t -> string -> string
    val remove_underscores : string -> string
    val mkloc : Ast.Loc.t -> Camlp4_import.Location.t
    val mkghloc : Ast.Loc.t -> Camlp4_import.Location.t
    val mktyp :
      Ast.Loc.t ->
      Camlp4_import.Parsetree.core_type_desc ->
      Camlp4_import.Parsetree.core_type
    val mkpat :
      Ast.Loc.t ->
      Camlp4_import.Parsetree.pattern_desc -> Camlp4_import.Parsetree.pattern
    val mkghpat :
      Ast.Loc.t ->
      Camlp4_import.Parsetree.pattern_desc -> Camlp4_import.Parsetree.pattern
    val mkexp :
      Ast.Loc.t ->
      Camlp4_import.Parsetree.expression_desc ->
      Camlp4_import.Parsetree.expression
    val mkmty :
      Ast.Loc.t ->
      Camlp4_import.Parsetree.module_type_desc ->
      Camlp4_import.Parsetree.module_type
    val mksig :
      Ast.Loc.t ->
      Camlp4_import.Parsetree.signature_item_desc ->
      Camlp4_import.Parsetree.signature_item
    val mkmod :
      Ast.Loc.t ->
      Camlp4_import.Parsetree.module_expr_desc ->
      Camlp4_import.Parsetree.module_expr
    val mkstr :
      Ast.Loc.t ->
      Camlp4_import.Parsetree.structure_item_desc ->
      Camlp4_import.Parsetree.structure_item
    val mkfield :
      Ast.Loc.t ->
      Camlp4_import.Parsetree.core_field_desc ->
      Camlp4_import.Parsetree.core_field_type
    val mkcty :
      Ast.Loc.t ->
      Camlp4_import.Parsetree.class_type_desc ->
      Camlp4_import.Parsetree.class_type
    val mkpcl :
      Ast.Loc.t ->
      Camlp4_import.Parsetree.class_expr_desc ->
      Camlp4_import.Parsetree.class_expr
    val mkpolytype :
      Camlp4_import.Parsetree.core_type -> Camlp4_import.Parsetree.core_type
    val mkvirtual : Ast.virtual_flag -> Camlp4_import.Asttypes.virtual_flag
    val mkdirection :
      Ast.direction_flag -> Camlp4_import.Asttypes.direction_flag
    val lident : string -> Camlp4_import.Longident.t
    val ldot :
      Camlp4_import.Longident.t -> string -> Camlp4_import.Longident.t
    val lapply :
      Camlp4_import.Longident.t ->
      Camlp4_import.Longident.t -> Camlp4_import.Longident.t
    val conv_con : string -> string
    val conv_lab : string -> string
    val array_function : string -> string -> Camlp4_import.Longident.t
    val mkrf : Ast.rec_flag -> Camlp4_import.Asttypes.rec_flag
    val mkli : string -> string list -> Camlp4_import.Longident.t
    val ctyp_fa : Ast.ctyp list -> Ast.ctyp -> Ast.ctyp * Ast.ctyp list
    val ident_tag :
      ?conv_lid:(string -> string) ->
      Ast.ident -> Camlp4_import.Longident.t * [> `app | `lident | `uident ]
    val ident :
      ?conv_lid:(string -> string) -> Ast.ident -> Camlp4_import.Longident.t
    val long_lident : string -> Ast.ident -> Camlp4_import.Longident.t
    val long_type_ident : Ast.ident -> Camlp4_import.Longident.t
    val long_class_ident : Ast.ident -> Camlp4_import.Longident.t
    val long_uident :
      ?conv_con:(string -> string) -> Ast.ident -> Camlp4_import.Longident.t
    val ctyp_long_id_prefix : Ast.ctyp -> Camlp4_import.Longident.t
    val ctyp_long_id : Ast.ctyp -> bool * Camlp4_import.Longident.t
    val ty_var_list_of_ctyp : Ast.ctyp -> string list
    val ctyp : Ast.ctyp -> Camlp4_import.Parsetree.core_type
    val row_field : Ast.ctyp -> Camlp4_import.Parsetree.row_field list
    val name_tags : Ast.ctyp -> Camlp4_import.Asttypes.label list
    val meth_list :
      Ast.ctyp ->
      Camlp4_import.Parsetree.core_field_type list ->
      Camlp4_import.Parsetree.core_field_type list
    val package_type_constraints :
      Ast.with_constr ->
      (string * Camlp4_import.Parsetree.core_type) list ->
      (string * Camlp4_import.Parsetree.core_type) list
    val package_type :
      Ast.module_type -> Camlp4_import.Parsetree.package_type
    val mktype :
      Ast.Loc.t ->
      (string * (bool * bool)) list ->
      (Camlp4_import.Parsetree.core_type *
       Camlp4_import.Parsetree.core_type * Camlp4_import.Location.t)
      list ->
      Camlp4_import.Parsetree.type_kind ->
      Camlp4_import.Asttypes.private_flag ->
      Camlp4_import.Parsetree.core_type option ->
      Camlp4_import.Parsetree.type_declaration
    val mkprivate' : bool -> Camlp4_import.Asttypes.private_flag
    val mkprivate : Ast.private_flag -> Camlp4_import.Asttypes.private_flag
    val mktrecord :
      Ast.ctyp ->
      string * Camlp4_import.Asttypes.mutable_flag *
      Camlp4_import.Parsetree.core_type * Camlp4_import.Location.t
    val mkvariant :
      Ast.ctyp ->
      string * Camlp4_import.Parsetree.core_type list *
      Camlp4_import.Location.t
    val type_decl :
      (string * (bool * bool)) list ->
      (Camlp4_import.Parsetree.core_type *
       Camlp4_import.Parsetree.core_type * Camlp4_import.Location.t)
      list ->
      Ast.Loc.t ->
      Camlp4_import.Parsetree.core_type option ->
      bool -> Ast.ctyp -> Camlp4_import.Parsetree.type_declaration
    val type_decl :
      (string * (bool * bool)) list ->
      (Camlp4_import.Parsetree.core_type *
       Camlp4_import.Parsetree.core_type * Camlp4_import.Location.t)
      list -> Ast.ctyp -> Camlp4_import.Parsetree.type_declaration
    val mkvalue_desc :
      Ast.ctyp -> string list -> Camlp4_import.Parsetree.value_description
    val list_of_meta_list : 'Ast.meta_list -> 'a list
    val mkmutable : Ast.mutable_flag -> Camlp4_import.Asttypes.mutable_flag
    val paolab : string -> Ast.patt -> string
    val opt_private_ctyp :
      Ast.ctyp ->
      Camlp4_import.Parsetree.type_kind *
      Camlp4_import.Asttypes.private_flag * Camlp4_import.Parsetree.core_type
    val type_parameters :
      Ast.ctyp ->
      (string * (bool * bool)) list -> (string * (bool * bool)) list
    val class_parameters :
      Ast.ctyp ->
      (string * (bool * bool)) list -> (string * (bool * bool)) list
    val type_parameters_and_type_name :
      Ast.ctyp ->
      (string * (bool * bool)) list ->
      Camlp4_import.Longident.t * (string * (bool * bool)) list
    val mkwithtyp :
      (Camlp4_import.Parsetree.type_declaration -> 'a) ->
      Ast.Loc.t -> Ast.ctyp -> Ast.ctyp -> Camlp4_import.Longident.t * 'a
    val mkwithc :
      Ast.with_constr ->
      (Camlp4_import.Longident.t * Camlp4_import.Parsetree.with_constraint)
      list ->
      (Camlp4_import.Longident.t * Camlp4_import.Parsetree.with_constraint)
      list
    val patt_fa : Ast.patt list -> Ast.patt -> Ast.patt * Ast.patt list
    val deep_mkrangepat :
      Ast.Loc.t -> char -> char -> Camlp4_import.Parsetree.pattern
    val mkrangepat :
      Ast.Loc.t -> char -> char -> Camlp4_import.Parsetree.pattern
    val patt : Ast.patt -> Camlp4_import.Parsetree.pattern
    val mklabpat :
      Ast.patt -> Camlp4_import.Longident.t * Camlp4_import.Parsetree.pattern
    val expr_fa : Ast.expr list -> Ast.expr -> Ast.expr * Ast.expr list
    val class_expr_fa :
      Ast.expr list -> Ast.class_expr -> Ast.class_expr * Ast.expr list
    val sep_expr_acc :
      (Ast.loc * string list * Ast.expr) list ->
      Ast.expr -> (Ast.loc * string list * Ast.expr) list
    val override_flag :
      Ast.Loc.t -> Ast.override_flag -> Camlp4_import.Asttypes.override_flag
    val list_of_opt_ctyp : Ast.ctyp -> Ast.ctyp list -> Ast.ctyp list
    val expr : Ast.expr -> Camlp4_import.Parsetree.expression
    val patt_of_lab :
      Ast.loc ->
      Camlp4_import.Asttypes.label ->
      Ast.patt -> Camlp4_import.Parsetree.pattern
    val expr_of_lab :
      Ast.loc ->
      Camlp4_import.Asttypes.label ->
      Ast.expr -> Camlp4_import.Parsetree.expression
    val label_expr :
      Ast.expr ->
      Camlp4_import.Asttypes.label * Camlp4_import.Parsetree.expression
    val binding :
      Ast.binding ->
      (Camlp4_import.Parsetree.pattern * Camlp4_import.Parsetree.expression)
      list ->
      (Camlp4_import.Parsetree.pattern * Camlp4_import.Parsetree.expression)
      list
    val match_case :
      Ast.match_case ->
      (Camlp4_import.Parsetree.pattern * Camlp4_import.Parsetree.expression)
      list ->
      (Camlp4_import.Parsetree.pattern * Camlp4_import.Parsetree.expression)
      list
    val when_expr :
      Ast.expr -> Ast.expr -> Camlp4_import.Parsetree.expression
    val mklabexp :
      Ast.rec_binding ->
      (Camlp4_import.Longident.t * Camlp4_import.Parsetree.expression) list ->
      (Camlp4_import.Longident.t * Camlp4_import.Parsetree.expression) list
    val mkideexp :
      Ast.rec_binding ->
      (string * Camlp4_import.Parsetree.expression) list ->
      (string * Camlp4_import.Parsetree.expression) list
    val mktype_decl :
      Ast.ctyp ->
      (string * Camlp4_import.Parsetree.type_declaration) list ->
      (string * Camlp4_import.Parsetree.type_declaration) list
    val module_type : Ast.module_type -> Camlp4_import.Parsetree.module_type
    val sig_item :
      Ast.sig_item ->
      Camlp4_import.Parsetree.signature -> Camlp4_import.Parsetree.signature
    val module_sig_binding :
      Ast.module_binding ->
      (string * Camlp4_import.Parsetree.module_type) list ->
      (string * Camlp4_import.Parsetree.module_type) list
    val module_str_binding :
      Ast.module_binding ->
      (string * Camlp4_import.Parsetree.module_type *
       Camlp4_import.Parsetree.module_expr)
      list ->
      (string * Camlp4_import.Parsetree.module_type *
       Camlp4_import.Parsetree.module_expr)
      list
    val module_expr : Ast.module_expr -> Camlp4_import.Parsetree.module_expr
    val str_item :
      Ast.str_item ->
      Camlp4_import.Parsetree.structure -> Camlp4_import.Parsetree.structure
    val class_type : Ast.class_type -> Camlp4_import.Parsetree.class_type
    val class_info_class_expr :
      Ast.class_expr -> Camlp4_import.Parsetree.class_declaration
    val class_info_class_type :
      Ast.class_type -> Camlp4_import.Parsetree.class_description
    val class_sig_item :
      Ast.class_sig_item ->
      Camlp4_import.Parsetree.class_type_field list ->
      Camlp4_import.Parsetree.class_type_field list
    val class_expr : Ast.class_expr -> Camlp4_import.Parsetree.class_expr
    val class_str_item :
      Ast.class_str_item ->
      Camlp4_import.Parsetree.class_field list ->
      Camlp4_import.Parsetree.class_field list
    val sig_item : Ast.sig_item -> Camlp4_import.Parsetree.signature
    val str_item : Ast.str_item -> Camlp4_import.Parsetree.structure
    val directive : Ast.expr -> Camlp4_import.Parsetree.directive_argument
    val phrase : Ast.str_item -> Camlp4_import.Parsetree.toplevel_phrase
  end