sig
  val pf :
    Format.formatter -> ('a, Format.formatter, unit) Pervasives.format -> 'a
  val kpf :
    (Format.formatter -> 'a) ->
    Format.formatter ->
    ('b, Format.formatter, unit, 'a) Pervasives.format4 -> 'b
  val strf : ('a, Format.formatter, unit, string) Pervasives.format4 -> 'a
  val kstrf :
    (string -> 'a) ->
    ('b, Format.formatter, unit, 'a) Pervasives.format4 -> 'b
  val strf_like :
    Format.formatter ->
    ('a, Format.formatter, unit, string) Pervasives.format4 -> 'a
  val with_buffer : ?like:Format.formatter -> Buffer.t -> Format.formatter
  val stdout : Format.formatter
  val stderr : Format.formatter
  val pr : ('a, Format.formatter, unit) Pervasives.format -> 'a
  val epr : ('a, Format.formatter, unit) Pervasives.format -> 'a
  type 'a t = Format.formatter -> '-> unit
  val nop : 'Fmt.t
  val cut : unit Fmt.t
  val sp : unit Fmt.t
  val const : 'Fmt.t -> '-> unit Fmt.t
  val unit : (unit, Format.formatter, unit) Pervasives.format -> unit Fmt.t
  val fmt :
    ('a, Format.formatter, unit) Pervasives.format -> Format.formatter -> 'a
  val always : (unit, Format.formatter, unit) Pervasives.format -> 'Fmt.t
  val bool : bool Fmt.t
  val int : int Fmt.t
  val nativeint : nativeint Fmt.t
  val int32 : int32 Fmt.t
  val int64 : int64 Fmt.t
  val uint : int Fmt.t
  val unativeint : nativeint Fmt.t
  val uint32 : int32 Fmt.t
  val uint64 : int64 Fmt.t
  val float : float Fmt.t
  val float_dfrac : int -> float Fmt.t
  val float_dsig : int -> float Fmt.t
  val char : char Fmt.t
  val string : string Fmt.t
  val buffer : Buffer.t Fmt.t
  val exn : exn Fmt.t
  val exn_backtrace : (exn * Printexc.raw_backtrace) Fmt.t
  val pair : ?sep:unit Fmt.t -> 'Fmt.t -> 'Fmt.t -> ('a * 'b) Fmt.t
  val option : ?none:unit Fmt.t -> 'Fmt.t -> 'a option Fmt.t
  val result : ok:'Fmt.t -> error:'Fmt.t -> ('a, 'b) Result.result Fmt.t
  val list : ?sep:unit Fmt.t -> 'Fmt.t -> 'a list Fmt.t
  val array : ?sep:unit Fmt.t -> 'Fmt.t -> 'a array Fmt.t
  val hashtbl :
    ?sep:unit Fmt.t -> ('a * 'b) Fmt.t -> ('a, 'b) Hashtbl.t Fmt.t
  val queue : ?sep:unit Fmt.t -> 'Fmt.t -> 'Queue.t Fmt.t
  val stack : ?sep:unit Fmt.t -> 'Fmt.t -> 'Stack.t Fmt.t
  val iter :
    ?sep:unit Fmt.t -> (('-> unit) -> '-> unit) -> 'Fmt.t -> 'Fmt.t
  val iter_bindings :
    ?sep:unit Fmt.t ->
    (('-> '-> unit) -> '-> unit) -> ('a * 'b) Fmt.t -> 'Fmt.t
  val using : ('-> 'b) -> 'Fmt.t -> 'Fmt.t
  module Dump :
    sig
      val signal : int Fmt.t
      val pair : 'Fmt.t -> 'Fmt.t -> ('a * 'b) Fmt.t
      val option : 'Fmt.t -> 'a option Fmt.t
      val result :
        ok:'Fmt.t -> error:'Fmt.t -> ('a, 'b) Result.result Fmt.t
      val list : 'Fmt.t -> 'a list Fmt.t
      val array : 'Fmt.t -> 'a array Fmt.t
      val hashtbl : 'Fmt.t -> 'Fmt.t -> ('a, 'b) Hashtbl.t Fmt.t
      val queue : 'Fmt.t -> 'Queue.t Fmt.t
      val stack : 'Fmt.t -> 'Stack.t Fmt.t
      val iter :
        (('-> unit) -> '-> unit) -> 'Fmt.t -> 'Fmt.t -> 'Fmt.t
      val iter_bindings :
        (('-> '-> unit) -> '-> unit) ->
        'Fmt.t -> 'Fmt.t -> 'Fmt.t -> 'Fmt.t
    end
  val box : ?indent:int -> 'Fmt.t -> 'Fmt.t
  val hbox : 'Fmt.t -> 'Fmt.t
  val vbox : ?indent:int -> 'Fmt.t -> 'Fmt.t
  val hvbox : ?indent:int -> 'Fmt.t -> 'Fmt.t
  val parens : 'Fmt.t -> 'Fmt.t
  val brackets : 'Fmt.t -> 'Fmt.t
  val braces : 'Fmt.t -> 'Fmt.t
  val quote : ?mark:string -> 'Fmt.t -> 'Fmt.t
  val words : string Fmt.t
  val paragraphs : string Fmt.t
  val text : string Fmt.t
  val lines : string Fmt.t
  val text_loc : ((int * int) * (int * int)) Fmt.t
  val append : 'Fmt.t -> 'Fmt.t -> ('a * 'b) Fmt.t
  val prefix : unit Fmt.t -> 'Fmt.t -> 'Fmt.t
  val suffix : unit Fmt.t -> 'Fmt.t -> 'Fmt.t
  val byte_size : int Fmt.t
  val bi_byte_size : int Fmt.t
  val if_utf_8 : 'Fmt.t -> 'Fmt.t -> 'Fmt.t
  val utf_8 : Format.formatter -> bool
  val set_utf_8 : Format.formatter -> bool -> unit
  type style =
      [ `Black
      | `Blue
      | `Bold
      | `Cyan
      | `Green
      | `Magenta
      | `None
      | `Red
      | `Underline
      | `White
      | `Yellow ]
  val styled : Fmt.style -> 'Fmt.t -> 'Fmt.t
  val styled_unit :
    Fmt.style ->
    (unit, Format.formatter, unit) Pervasives.format -> unit Fmt.t
  type style_renderer = [ `Ansi_tty | `None ]
  val style_renderer : Format.formatter -> Fmt.style_renderer
  val set_style_renderer : Format.formatter -> Fmt.style_renderer -> unit
  val of_to_string : ('-> string) -> 'Fmt.t
  val to_to_string : 'Fmt.t -> '-> string
end