sig
  type ('a, 'b) t
  val empty : ('a, 'b) Tbl.t
  val add : '-> '-> ('a, 'b) Tbl.t -> ('a, 'b) Tbl.t
  val find : '-> ('a, 'b) Tbl.t -> 'b
  val mem : '-> ('a, 'b) Tbl.t -> bool
  val remove : '-> ('a, 'b) Tbl.t -> ('a, 'b) Tbl.t
  val iter : ('-> '-> unit) -> ('a, 'b) Tbl.t -> unit
  val map : ('-> '-> 'c) -> ('a, 'b) Tbl.t -> ('a, 'c) Tbl.t
  val fold : ('-> '-> '-> 'c) -> ('a, 'b) Tbl.t -> '-> 'c
  val print :
    (Format.formatter -> '-> unit) ->
    (Format.formatter -> '-> unit) ->
    Format.formatter -> ('a, 'b) Tbl.t -> unit
end