sig
  val stdout : Stdlib.Format.formatter
  val stderr : Stdlib.Format.formatter
  val pf :
    Stdlib.Format.formatter ->
    ('a, Stdlib.Format.formatter, unit) Stdlib.format -> 'a
  val pr : ('a, Stdlib.Format.formatter, unit) Stdlib.format -> 'a
  val epr : ('a, Stdlib.Format.formatter, unit) Stdlib.format -> 'a
  val str : ('a, Stdlib.Format.formatter, unit, string) Stdlib.format4 -> 'a
  val kpf :
    (Stdlib.Format.formatter -> 'a) ->
    Stdlib.Format.formatter ->
    ('b, Stdlib.Format.formatter, unit, 'a) Stdlib.format4 -> 'b
  val kstr :
    (string -> 'a) ->
    ('b, Stdlib.Format.formatter, unit, 'a) Stdlib.format4 -> 'b
  val str_like :
    Stdlib.Format.formatter ->
    ('a, Stdlib.Format.formatter, unit, string) Stdlib.format4 -> 'a
  val with_buffer :
    ?like:Stdlib.Format.formatter ->
    Stdlib.Buffer.t -> Stdlib.Format.formatter
  val failwith : ('a, Stdlib.Format.formatter, unit, 'b) Stdlib.format4 -> 'a
  val failwith_notrace :
    ('a, Stdlib.Format.formatter, unit, 'b) Stdlib.format4 -> 'a
  val invalid_arg :
    ('a, Stdlib.Format.formatter, unit, 'b) Stdlib.format4 -> 'a
  val error :
    ('b, Stdlib.Format.formatter, unit, ('a, string) Stdlib.result)
    Stdlib.format4 -> 'b
  val error_msg :
    ('b, Stdlib.Format.formatter, unit,
     ('a, [ `Msg of string ]) Stdlib.result)
    Stdlib.format4 -> 'b
  type 'a t = Stdlib.Format.formatter -> '-> unit
  val flush : 'Fmt.t
  val nop : 'Fmt.t
  val any : (unit, Stdlib.Format.formatter, unit) Stdlib.format -> 'Fmt.t
  val using : ('-> 'b) -> 'Fmt.t -> 'Fmt.t
  val const : 'Fmt.t -> '-> 'Fmt.t
  val fmt :
    ('a, Stdlib.Format.formatter, unit) Stdlib.format ->
    Stdlib.Format.formatter -> 'a
  val cut : 'Fmt.t
  val sp : 'Fmt.t
  val sps : int -> 'Fmt.t
  val comma : 'Fmt.t
  val semi : 'Fmt.t
  val append : 'Fmt.t -> 'Fmt.t -> 'Fmt.t
  val ( ++ ) : 'Fmt.t -> 'Fmt.t -> 'Fmt.t
  val concat : ?sep:unit Fmt.t -> 'Fmt.t list -> '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 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 hovbox : ?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 id : '-> 'a
  val field :
    ?label:string Fmt.t ->
    ?sep:unit Fmt.t -> string -> ('-> 'a) -> 'Fmt.t -> 'Fmt.t
  val record : ?sep:unit Fmt.t -> 'Fmt.t list -> '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 : Stdlib.Buffer.t Fmt.t
  val exn : exn Fmt.t
  val exn_backtrace : (exn * Stdlib.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) Stdlib.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 seq : ?sep:unit Fmt.t -> 'Fmt.t -> 'Stdlib.Seq.t Fmt.t
  val hashtbl :
    ?sep:unit Fmt.t -> ('a * 'b) Fmt.t -> ('a, 'b) Stdlib.Hashtbl.t Fmt.t
  val queue : ?sep:unit Fmt.t -> 'Fmt.t -> 'Stdlib.Queue.t Fmt.t
  val stack : ?sep:unit Fmt.t -> 'Fmt.t -> 'Stdlib.Stack.t Fmt.t
  module Dump :
    sig
      val signal : int Fmt.t
      val uchar : Stdlib.Uchar.t Fmt.t
      val string : string 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) Stdlib.result Fmt.t
      val list : 'Fmt.t -> 'a list Fmt.t
      val array : 'Fmt.t -> 'a array Fmt.t
      val seq : 'Fmt.t -> 'Stdlib.Seq.t Fmt.t
      val hashtbl : 'Fmt.t -> 'Fmt.t -> ('a, 'b) Stdlib.Hashtbl.t Fmt.t
      val queue : 'Fmt.t -> 'Stdlib.Queue.t Fmt.t
      val stack : 'Fmt.t -> 'Stdlib.Stack.t Fmt.t
      val field :
        ?label:string Fmt.t -> string -> ('-> 'a) -> 'Fmt.t -> 'Fmt.t
      val record : 'Fmt.t list -> '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 si_size : scale:int -> string -> int Fmt.t
  val byte_size : int Fmt.t
  val bi_byte_size : int Fmt.t
  val uint64_ns_span : int64 Fmt.t
  type 'a vec = int * (int -> 'a)
  val on_bytes : char Fmt.vec Fmt.t -> bytes Fmt.t
  val on_string : char Fmt.vec Fmt.t -> string Fmt.t
  val ascii : ?w:int -> ?subst:unit Fmt.t -> unit -> char Fmt.vec Fmt.t
  val octets : ?w:int -> ?sep:unit Fmt.t -> unit -> char Fmt.vec Fmt.t
  val addresses :
    ?addr:int Fmt.t -> ?w:int -> 'Fmt.vec Fmt.t -> 'Fmt.vec Fmt.t
  val hex : ?w:int -> unit -> char Fmt.vec Fmt.t
  val words : string Fmt.t
  val paragraphs : string Fmt.t
  val text : string Fmt.t
  val lines : string Fmt.t
  val truncated : max:int -> string Fmt.t
  val text_loc : ((int * int) * (int * int)) Fmt.t
  val one_of : ?empty:unit Fmt.t -> 'Fmt.t -> 'a list Fmt.t
  val did_you_mean :
    ?pre:unit Fmt.t ->
    ?post:unit Fmt.t -> kind:string -> 'Fmt.t -> ('a * 'a list) Fmt.t
  val if_utf_8 : 'Fmt.t -> 'Fmt.t -> 'Fmt.t
  val utf_8 : Stdlib.Format.formatter -> bool
  val set_utf_8 : Stdlib.Format.formatter -> bool -> unit
  type color =
      [ `Black | `Blue | `Cyan | `Green | `Magenta | `Red | `White | `Yellow
      ]
  type style =
      [ `Bg of
          [ `Black
          | `Blue
          | `Cyan
          | `Green
          | `Hi of Fmt.color
          | `Magenta
          | `Red
          | `White
          | `Yellow ]
      | `Black
      | `Blue
      | `Bold
      | `Cyan
      | `Faint
      | `Fg of
          [ `Black
          | `Blue
          | `Cyan
          | `Green
          | `Hi of Fmt.color
          | `Magenta
          | `Red
          | `White
          | `Yellow ]
      | `Green
      | `Italic
      | `Magenta
      | `None
      | `Red
      | `Reverse
      | `Underline
      | `White
      | `Yellow ]
  val styled : Fmt.style -> 'Fmt.t -> 'Fmt.t
  type style_renderer = [ `Ansi_tty | `None ]
  val style_renderer : Stdlib.Format.formatter -> Fmt.style_renderer
  val set_style_renderer :
    Stdlib.Format.formatter -> Fmt.style_renderer -> unit
  val of_to_string : ('-> string) -> 'Fmt.t
  val to_to_string : 'Fmt.t -> '-> string
  val strf : ('a, Stdlib.Format.formatter, unit, string) Stdlib.format4 -> 'a
  val kstrf :
    (string -> 'a) ->
    ('b, Stdlib.Format.formatter, unit, 'a) Stdlib.format4 -> 'b
  val strf_like :
    Stdlib.Format.formatter ->
    ('a, Stdlib.Format.formatter, unit, string) Stdlib.format4 -> 'a
  val always :
    (unit, Stdlib.Format.formatter, unit) Stdlib.format -> 'Fmt.t
  val unit :
    (unit, Stdlib.Format.formatter, unit) Stdlib.format -> unit Fmt.t
  val prefix : unit Fmt.t -> 'Fmt.t -> 'Fmt.t
  val suffix : unit Fmt.t -> 'Fmt.t -> 'Fmt.t
  val styled_unit :
    Fmt.style ->
    (unit, Stdlib.Format.formatter, unit) Stdlib.format -> unit Fmt.t
end