sig
  val signal : int Fmt.t
  val uchar : Stdlib.Uchar.t Fmt.t
  val string : string Fmt.t
  val pair : 'a Fmt.t -> 'b Fmt.t -> ('a * 'b) Fmt.t
  val option : 'a Fmt.t -> 'a option Fmt.t
  val result : ok:'a Fmt.t -> error:'b Fmt.t -> ('a, 'b) Stdlib.result Fmt.t
  val list : 'a Fmt.t -> 'a list Fmt.t
  val array : 'a Fmt.t -> 'a array Fmt.t
  val seq : 'a Fmt.t -> 'a Stdlib.Seq.t Fmt.t
  val hashtbl : 'a Fmt.t -> 'b Fmt.t -> ('a, 'b) Stdlib.Hashtbl.t Fmt.t
  val queue : 'a Fmt.t -> 'a Stdlib.Queue.t Fmt.t
  val stack : 'a Fmt.t -> 'a Stdlib.Stack.t Fmt.t
  val field :
    ?label:string Fmt.t -> string -> ('b -> 'a) -> 'a Fmt.t -> 'b Fmt.t
  val record : 'a Fmt.t list -> 'a Fmt.t
  val iter : (('a -> unit) -> 'b -> unit) -> 'b Fmt.t -> 'a Fmt.t -> 'b Fmt.t
  val iter_bindings :
    (('a -> 'b -> unit) -> 'c -> unit) ->
    'c Fmt.t -> 'a Fmt.t -> 'b Fmt.t -> 'c Fmt.t
end