sig
  val get : ('a, 'b) Hashtbl.t -> '-> 'b option
  val get_or : ('a, 'b) Hashtbl.t -> '-> default:'-> 'b
  val keys : ('a, 'b) Hashtbl.t -> 'CCHashtbl.sequence
  val values : ('a, 'b) Hashtbl.t -> 'CCHashtbl.sequence
  val keys_list : ('a, 'b) Hashtbl.t -> 'a list
  val values_list : ('a, 'b) Hashtbl.t -> 'b list
  val map_list : ('-> '-> 'c) -> ('a, 'b) Hashtbl.t -> 'c list
  val incr : ?by:int -> ('a, int) Hashtbl.t -> '-> unit
  val decr : ?by:int -> ('a, int) Hashtbl.t -> '-> unit
  val to_seq : ('a, 'b) Hashtbl.t -> ('a * 'b) CCHashtbl.sequence
  val add_list : ('a, 'b list) Hashtbl.t -> '-> '-> unit
  val add_seq : ('a, 'b) Hashtbl.t -> ('a * 'b) CCHashtbl.sequence -> unit
  val of_seq : ('a * 'b) CCHashtbl.sequence -> ('a, 'b) Hashtbl.t
  val add_seq_count : ('a, int) Hashtbl.t -> 'CCHashtbl.sequence -> unit
  val of_seq_count : 'CCHashtbl.sequence -> ('a, int) Hashtbl.t
  val to_list : ('a, 'b) Hashtbl.t -> ('a * 'b) list
  val of_list : ('a * 'b) list -> ('a, 'b) Hashtbl.t
  val update :
    ('a, 'b) Hashtbl.t -> f:('-> 'b option -> 'b option) -> k:'-> unit
  val get_or_add : ('a, 'b) Hashtbl.t -> f:('-> 'b) -> k:'-> 'b
  val print :
    'CCHashtbl.printer ->
    'CCHashtbl.printer -> ('a, 'b) Hashtbl.t CCHashtbl.printer
end