sig
  type ('k, 'v) t
  val empty : ('k, 'v) Tbl.t
  val add : 'k -> 'v -> ('k, 'v) Tbl.t -> ('k, 'v) Tbl.t
  val find : 'k -> ('k, 'v) Tbl.t -> 'v
  val find_str : string -> (string, 'v) Tbl.t -> 'v
  val mem : 'k -> ('k, 'v) Tbl.t -> bool
  val remove : 'k -> ('k, 'v) Tbl.t -> ('k, 'v) Tbl.t
  val iter : ('k -> 'v -> unit) -> ('k, 'v) Tbl.t -> unit
  val map : ('k -> 'v1 -> 'v2) -> ('k, 'v1) Tbl.t -> ('k, 'v2) Tbl.t
  val fold : ('k -> 'v -> 'acc -> 'acc) -> ('k, 'v) Tbl.t -> 'acc -> 'acc
  val print :
    (Format.formatter -> 'k -> unit) ->
    (Format.formatter -> 'v -> unit) ->
    Format.formatter -> ('k, 'v) Tbl.t -> unit
end