sig
  type ('a, 'b, 'c) t = ('a, 'b, 'c) format
  val printf : ('a, 'Extlib.InnerIO.output, unit) t -> 'a
  val eprintf : ('a, 'Extlib.InnerIO.output, unit) t -> 'a
  val sprintf : ('a, unit, string) t -> 'a
  val sprintf2 : ('a, 'Extlib.InnerIO.output, unit, string) format4 -> 'a
  val fprintf :
    'Extlib.InnerIO.output -> ('b, 'Extlib.InnerIO.output, unit) t -> 'b
  val ifprintf : '-> ('b, 'Extlib.InnerIO.output, unit) t -> 'b
  val bprintf : Buffer.t -> ('a, Buffer.t, unit) t -> 'a
  val bprintf2 : Buffer.t -> ('a, 'Extlib.InnerIO.output, unit) t -> 'a
  val kfprintf :
    ('Extlib.InnerIO.output -> 'b) ->
    'Extlib.InnerIO.output ->
    ('c, 'Extlib.InnerIO.output, unit, 'b) format4 -> 'c
  val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
  val ksprintf2 :
    (string -> 'a) -> ('b, 'Extlib.InnerIO.output, unit, 'a) format4 -> 'b
  val kbprintf :
    (Buffer.t -> 'a) -> Buffer.t -> ('b, Buffer.t, unit, 'a) format4 -> 'b
  val kbprintf2 :
    (Buffer.t -> 'a) ->
    Buffer.t -> ('b, 'Extlib.InnerIO.output, unit, 'a) format4 -> 'b
  val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
end