sig
  val list :
    ?first:(unit, Format.formatter, unit) Pervasives.format ->
    ?sep:(unit, Format.formatter, unit) Pervasives.format ->
    ?last:(unit, Format.formatter, unit) Pervasives.format ->
    (Format.formatter -> 'a -> unit) -> Format.formatter -> 'a list -> unit
  val array :
    ?first:(unit, Format.formatter, unit) Pervasives.format ->
    ?sep:(unit, Format.formatter, unit) Pervasives.format ->
    ?last:(unit, Format.formatter, unit) Pervasives.format ->
    (Format.formatter -> 'a -> unit) -> Format.formatter -> 'a array -> unit
  val pair :
    ?first:(unit, Format.formatter, unit) Pervasives.format ->
    ?sep:(unit, Format.formatter, unit) Pervasives.format ->
    ?last:(unit, Format.formatter, unit) Pervasives.format ->
    (Format.formatter -> 'a -> unit) ->
    (Format.formatter -> 'b -> unit) -> Format.formatter -> 'a * 'b -> unit
  val hash :
    ?first:(unit, Format.formatter, unit) Pervasives.format ->
    ?sep:(unit, Format.formatter, unit) Pervasives.format ->
    ?last:(unit, Format.formatter, unit) Pervasives.format ->
    ?firstbind:(unit, Format.formatter, unit) Pervasives.format ->
    ?sepbind:(unit, Format.formatter, unit) Pervasives.format ->
    ?lastbind:(unit, Format.formatter, unit) Pervasives.format ->
    (Format.formatter -> 'a -> unit) ->
    (Format.formatter -> 'b -> unit) ->
    Format.formatter -> ('a, 'b) Hashtbl.t -> unit
  val string_of_print : (Format.formatter -> 'a -> unit) -> 'a -> string
  val print_of_string : ('a -> string) -> Format.formatter -> 'a -> unit
  val sprintf : ('a, Format.formatter, unit, string) Pervasives.format4 -> 'a
end