sig
  val sfprintf :
    ('a, Format.formatter, unit, string) Pervasives.format4 -> 'a
  val ksfprintf :
    (string -> 'b) ->
    ('a, Format.formatter, unit, 'b) Pervasives.format4 -> 'a
  val to_string :
    ?margin:int -> (Format.formatter -> '-> unit) -> '-> string
  val pp_print_string_fill : Format.formatter -> string -> unit
  val escape_underscores : string -> string
  type sformat = (unit, Format.formatter, unit) Pervasives.format
  type 'a formatter = Format.formatter -> '-> unit
  type ('a, 'b) formatter2 = Format.formatter -> '-> '-> unit
  val pp_list :
    ?pre:Pretty_utils.sformat ->
    ?sep:Pretty_utils.sformat ->
    ?last:Pretty_utils.sformat ->
    ?suf:Pretty_utils.sformat ->
    ?empty:Pretty_utils.sformat ->
    'Pretty_utils.formatter -> 'a list Pretty_utils.formatter
  val pp_array :
    ?pre:Pretty_utils.sformat ->
    ?sep:Pretty_utils.sformat ->
    ?suf:Pretty_utils.sformat ->
    ?empty:Pretty_utils.sformat ->
    (int, 'a) Pretty_utils.formatter2 -> 'a array Pretty_utils.formatter
  val pp_iter :
    ?pre:Pretty_utils.sformat ->
    ?sep:Pretty_utils.sformat ->
    ?suf:Pretty_utils.sformat ->
    (('-> unit) -> '-> unit) ->
    'Pretty_utils.formatter -> 'Pretty_utils.formatter
  val pp_iter2 :
    ?pre:Pretty_utils.sformat ->
    ?sep:Pretty_utils.sformat ->
    ?suf:Pretty_utils.sformat ->
    ?between:Pretty_utils.sformat ->
    (('key -> '-> unit) -> '-> unit) ->
    'key Pretty_utils.formatter ->
    'Pretty_utils.formatter -> 'Pretty_utils.formatter
  val pp_opt :
    ?pre:Pretty_utils.sformat ->
    ?suf:Pretty_utils.sformat ->
    ?none:Pretty_utils.sformat ->
    'Pretty_utils.formatter -> 'a option Pretty_utils.formatter
  val pp_cond :
    ?pr_false:Pretty_utils.sformat ->
    bool -> Pretty_utils.sformat Pretty_utils.formatter
  val pp_pair :
    ?pre:Pretty_utils.sformat ->
    ?sep:Pretty_utils.sformat ->
    ?suf:Pretty_utils.sformat ->
    'Pretty_utils.formatter ->
    'Pretty_utils.formatter -> ('a * 'b) Pretty_utils.formatter
  val pp_flowlist :
    ?left:Pretty_utils.sformat ->
    ?sep:Pretty_utils.sformat ->
    ?right:Pretty_utils.sformat ->
    'Pretty_utils.formatter -> 'a list Pretty_utils.formatter
  val pp_blocklist :
    ?left:Pretty_utils.sformat ->
    ?right:Pretty_utils.sformat ->
    'Pretty_utils.formatter -> 'a list Pretty_utils.formatter
  val pp_open_block :
    Format.formatter -> ('a, Format.formatter, unit) Pervasives.format -> 'a
  val pp_close_block :
    Format.formatter -> ('a, Format.formatter, unit) Pervasives.format -> 'a
  val pp_trail : 'Pretty_utils.formatter -> 'Pretty_utils.formatter
  type align = [ `Center | `Left | `Right ]
  val pp_items :
    ?align:Pretty_utils.align ->
    ?margin:int ->
    ?min:int ->
    ?max:int ->
    title:('-> string) ->
    iter:(('-> unit) -> unit) ->
    ?pp_title:string Pretty_utils.formatter ->
    pp_item:(string Pretty_utils.formatter -> 'Pretty_utils.formatter) ->
    Format.formatter -> unit
  type marger
  val marger : unit -> Pretty_utils.marger
  val add_margin :
    Pretty_utils.marger ->
    ?margin:int -> ?min:int -> ?max:int -> string -> unit
  val pp_margin :
    ?align:Pretty_utils.align ->
    ?pp:string Pretty_utils.formatter ->
    Pretty_utils.marger -> string Pretty_utils.formatter
end