sig
  type t
  type module_longident = Macro.Module_longident.t
  type reloc_expr =
      Delimited_overloading.module_longident ->
      Camlp4.PreCast.Syntax.Ast.Loc.t -> Camlp4.PreCast.Syntax.Ast.expr
  exception Invalid_identifier of string
  val empty : Delimited_overloading.t
  val concat :
    Delimited_overloading.t ->
    Delimited_overloading.t -> Delimited_overloading.t
  val qualify_lid : string -> Delimited_overloading.reloc_expr
  val int :
    Delimited_overloading.t ->
    ?cache:bool ->
    (int -> Delimited_overloading.reloc_expr) -> Delimited_overloading.t
  val float :
    Delimited_overloading.t ->
    ?cache:bool ->
    (float -> Delimited_overloading.reloc_expr) -> Delimited_overloading.t
  val nativeint :
    Delimited_overloading.t ->
    ?cache:bool ->
    (nativeint -> Delimited_overloading.reloc_expr) ->
    Delimited_overloading.t
  val int32 :
    Delimited_overloading.t ->
    ?cache:bool ->
    (int32 -> Delimited_overloading.reloc_expr) -> Delimited_overloading.t
  val int64 :
    Delimited_overloading.t ->
    ?cache:bool ->
    (int64 -> Delimited_overloading.reloc_expr) -> Delimited_overloading.t
  val string :
    Delimited_overloading.t ->
    ?cache:bool ->
    check:(string -> 'a) ->
    ?to_type:(string -> string) ->
    (string -> Delimited_overloading.reloc_expr) -> Delimited_overloading.t
  val poly_var :
    Delimited_overloading.t ->
    ?cache:bool ->
    check:(string -> 'a) ->
    ?to_type:(string -> string) ->
    (string -> Delimited_overloading.reloc_expr) -> Delimited_overloading.t
  val list :
    Delimited_overloading.t ->
    (Camlp4.PreCast.Syntax.Ast.expr list -> Delimited_overloading.reloc_expr) ->
    Delimited_overloading.t
  val array :
    Delimited_overloading.t ->
    (Camlp4.PreCast.Syntax.Ast.expr list -> Delimited_overloading.reloc_expr) ->
    Delimited_overloading.t
  val array_get :
    Delimited_overloading.t ->
    (Camlp4.PreCast.Syntax.Ast.expr ->
     Camlp4.PreCast.Syntax.Ast.expr -> Delimited_overloading.reloc_expr) ->
    Delimited_overloading.t
  val array_set :
    Delimited_overloading.t ->
    (Camlp4.PreCast.Syntax.Ast.expr ->
     Camlp4.PreCast.Syntax.Ast.expr ->
     Camlp4.PreCast.Syntax.Ast.expr -> Delimited_overloading.reloc_expr) ->
    Delimited_overloading.t
  val string_get :
    Delimited_overloading.t ->
    (Camlp4.PreCast.Syntax.Ast.expr ->
     Camlp4.PreCast.Syntax.Ast.expr -> Delimited_overloading.reloc_expr) ->
    Delimited_overloading.t
  val string_set :
    Delimited_overloading.t ->
    (Camlp4.PreCast.Syntax.Ast.expr ->
     Camlp4.PreCast.Syntax.Ast.expr ->
     Camlp4.PreCast.Syntax.Ast.expr -> Delimited_overloading.reloc_expr) ->
    Delimited_overloading.t
  val bigarray_get :
    Delimited_overloading.t ->
    (Camlp4.PreCast.Syntax.Ast.expr ->
     Camlp4.PreCast.Syntax.Ast.expr list -> Delimited_overloading.reloc_expr) ->
    Delimited_overloading.t
  val bigarray_set :
    Delimited_overloading.t ->
    (Camlp4.PreCast.Syntax.Ast.expr ->
     Camlp4.PreCast.Syntax.Ast.expr list ->
     Camlp4.PreCast.Syntax.Ast.expr -> Delimited_overloading.reloc_expr) ->
    Delimited_overloading.t
  val assign :
    Delimited_overloading.t ->
    (Camlp4.PreCast.Syntax.Ast.expr ->
     Camlp4.PreCast.Syntax.Ast.expr -> Delimited_overloading.reloc_expr) ->
    Delimited_overloading.t
  val assign_ref :
    Delimited_overloading.t ->
    (Camlp4.PreCast.Syntax.Ast.expr ->
     Camlp4.PreCast.Syntax.Ast.expr -> Delimited_overloading.reloc_expr) ->
    Delimited_overloading.t
  val lid :
    Delimited_overloading.t ->
    ?cache:bool ->
    string -> Delimited_overloading.reloc_expr -> Delimited_overloading.t
  val lid_subst :
    Delimited_overloading.t ->
    (string * string) list -> Delimited_overloading.t
  val std_arithmetic : Delimited_overloading.t -> Delimited_overloading.t
  val comparison :
    ?cache:bool ->
    ?cmp:string -> Delimited_overloading.t -> Delimited_overloading.t
  val lid_remove :
    Delimited_overloading.t -> string list -> Delimited_overloading.t
  type transf
  type transf_fun =
      Delimited_overloading.transf ->
      Camlp4.PreCast.Syntax.Ast.expr -> Camlp4.PreCast.Syntax.Ast.expr
  val transf_module :
    Delimited_overloading.transf -> Delimited_overloading.module_longident
  val transf_qualify :
    Delimited_overloading.transf ->
    string ->
    Camlp4.PreCast.Syntax.Ast.Loc.t -> Camlp4.PreCast.Syntax.Ast.expr
  val self : Delimited_overloading.transf -> Camlp4.PreCast.Syntax.Ast.map
  val super : Delimited_overloading.transf_fun
  val expr :
    Delimited_overloading.t ->
    Delimited_overloading.transf_fun -> Delimited_overloading.t
  val expr_fold :
    Delimited_overloading.t ->
    (self:('->
           Delimited_overloading.transf -> Camlp4.PreCast.Syntax.Ast.map) ->
     super:('-> Delimited_overloading.transf_fun) ->
     '-> Delimited_overloading.transf_fun) ->
    '-> Delimited_overloading.t
  val before :
    Delimited_overloading.t -> (unit -> unit) -> Delimited_overloading.t
  val after :
    Delimited_overloading.t ->
    (Camlp4.PreCast.Syntax.Ast.expr -> Camlp4.PreCast.Syntax.Ast.expr) ->
    Delimited_overloading.t
  val openin :
    ?remove:bool -> Delimited_overloading.t -> Delimited_overloading.t
  val apply :
    Delimited_overloading.t ->
    Delimited_overloading.module_longident ->
    Camlp4.PreCast.Syntax.Ast.expr -> Camlp4.PreCast.Syntax.Ast.expr
  val associate :
    Delimited_overloading.t -> ?qualify:string -> string -> unit
  module Default :
    sig
      val update :
        (Delimited_overloading.t -> Delimited_overloading.t) -> unit
      val unset : unit -> unit
      val apply :
        Delimited_overloading.module_longident ->
        Camlp4.PreCast.Syntax.Ast.expr -> Camlp4.PreCast.Syntax.Ast.expr
    end
  module Suspend :
    sig
      val add : string -> unit
      val remove : string -> unit
      val resolve :
        Camlp4.PreCast.Syntax.Ast.expr -> Camlp4.PreCast.Syntax.Ast.expr
    end
  val new_lid : unit -> string
  val is_immediate : Camlp4.PreCast.Syntax.Ast.expr -> bool
  val add_to_beginning_of_file : Camlp4.PreCast.Syntax.Ast.str_item -> unit
  val overloaded : string
  val suspended : string
  val module_square_brackets :
    (Delimited_overloading.module_longident ->
     Camlp4.PreCast.Syntax.Ast.Loc.t ->
     Camlp4.PreCast.Syntax.Ast.expr -> Camlp4.PreCast.Syntax.Ast.expr)
    Pervasives.ref
  val module_curly_brackets :
    (Delimited_overloading.module_longident ->
     Camlp4.PreCast.Syntax.Ast.Loc.t ->
     Camlp4.PreCast.Syntax.Ast.expr -> Camlp4.PreCast.Syntax.Ast.expr)
    Pervasives.ref
  module Overloading : sig val toplevel_reset : unit -> unit end
end