sig
  val fprintf :
    Pervasives.out_channel ->
    ('a, Pervasives.out_channel, unit) Pervasives.format -> 'a
  val printf : ('a, Pervasives.out_channel, unit) Pervasives.format -> 'a
  val eprintf : ('a, Pervasives.out_channel, unit) Pervasives.format -> 'a
  val ifprintf : '-> ('b, 'a, unit) Pervasives.format -> 'b
  val sprintf : ('a, unit, string) Pervasives.format -> 'a
  val bprintf : Buffer.t -> ('a, Buffer.t, unit) Pervasives.format -> 'a
  val kfprintf :
    (Pervasives.out_channel -> 'a) ->
    Pervasives.out_channel ->
    ('b, Pervasives.out_channel, unit, 'a) Pervasives.format4 -> 'b
  val ksprintf :
    (string -> 'a) -> ('b, unit, string, 'a) Pervasives.format4 -> 'b
  val kbprintf :
    (Buffer.t -> 'a) ->
    Buffer.t -> ('b, Buffer.t, unit, 'a) Pervasives.format4 -> 'b
  val kprintf :
    (string -> 'a) -> ('b, unit, string, 'a) Pervasives.format4 -> 'b
  module CamlinternalPr :
    sig
      module Sformat :
        sig
          type index
          val index_of_int : int -> Printf.CamlinternalPr.Sformat.index
          external int_of_index : Printf.CamlinternalPr.Sformat.index -> int
            = "%identity"
          external unsafe_index_of_int :
            int -> Printf.CamlinternalPr.Sformat.index = "%identity"
          val succ_index :
            Printf.CamlinternalPr.Sformat.index ->
            Printf.CamlinternalPr.Sformat.index
          val sub :
            ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
            Printf.CamlinternalPr.Sformat.index -> int -> string
          val to_string : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
          external length : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int
            = "%string_length"
          external get : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> char
            = "%string_safe_get"
          external unsafe_to_string :
            ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string = "%identity"
          external unsafe_get :
            ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> char
            = "%string_unsafe_get"
        end
      module Tformat :
        sig
          type ac = {
            mutable ac_rglr : int;
            mutable ac_skip : int;
            mutable ac_rdrs : int;
          }
          val ac_of_format :
            ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
            Printf.CamlinternalPr.Tformat.ac
          val sub_format :
            (('a, 'b, 'c, 'd, 'e, 'f) format6 -> int) ->
            (('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> char -> int) ->
            char -> ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> int
          val summarize_format_type :
            ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
          val scan_format :
            ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
            'g array ->
            Printf.CamlinternalPr.Sformat.index ->
            int ->
            (Printf.CamlinternalPr.Sformat.index -> string -> int -> 'h) ->
            (Printf.CamlinternalPr.Sformat.index -> '-> '-> int -> 'h) ->
            (Printf.CamlinternalPr.Sformat.index -> '-> int -> 'h) ->
            (Printf.CamlinternalPr.Sformat.index -> int -> 'h) ->
            (Printf.CamlinternalPr.Sformat.index ->
             ('l, 'm, 'n, 'o, 'p, 'q) format6 -> int -> 'h) ->
            'h
          val kapr :
            (('a, 'b, 'c, 'd, 'e, 'f) format6 -> Obj.t array -> 'g) ->
            ('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g
        end
    end
end