sig   type 'a sequence = ('-> unit) -> unit   type 'a eq = '-> '-> bool   type 'a hash = '-> int   type 'a printer = Format.formatter -> '-> unit   module Poly :     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   val get : ('a, 'b) Hashtbl.t -> '-> 'b option   val get_or : ('a, 'b) Hashtbl.t -> '-> default:'-> 'b   val keys : ('a, 'b) Hashtbl.t -> 'a sequence   val values : ('a, 'b) Hashtbl.t -> 'b 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) sequence   val add_list : ('a, 'b list) Hashtbl.t -> '-> '-> unit   val add_seq : ('a, 'b) Hashtbl.t -> ('a * 'b) sequence -> unit   val of_seq : ('a * 'b) sequence -> ('a, 'b) Hashtbl.t   val add_seq_count : ('a, int) Hashtbl.t -> 'a sequence -> unit   val of_seq_count : 'a 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 : 'a printer -> 'b printer -> ('a, 'b) Hashtbl.t printer   module type S =     sig       type key       type 'a t       val create : int -> 'a t       val clear : 'a t -> unit       val reset : 'a t -> unit       val copy : 'a t -> 'a t       val add : 'a t -> key -> '-> unit       val remove : 'a t -> key -> unit       val find : 'a t -> key -> 'a       val find_all : 'a t -> key -> 'a list       val replace : 'a t -> key -> '-> unit       val mem : 'a t -> key -> bool       val iter : (key -> '-> unit) -> 'a t -> unit       val filter_map_inplace : (key -> '-> 'a option) -> 'a t -> unit       val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b       val length : 'a t -> int       val stats : 'a t -> Hashtbl.statistics       val get : 'a t -> key -> 'a option       val get_or : 'a t -> key -> default:'-> 'a       val add_list : 'a list t -> key -> '-> unit       val incr : ?by:int -> int t -> key -> unit       val decr : ?by:int -> int t -> key -> unit       val keys : 'a t -> key CCHashtbl.sequence       val values : 'a t -> 'CCHashtbl.sequence       val keys_list : 'a t -> key list       val values_list : 'a t -> 'a list       val map_list : (key -> '-> 'b) -> 'a t -> 'b list       val to_seq : 'a t -> (key * 'a) CCHashtbl.sequence       val of_seq : (key * 'a) CCHashtbl.sequence -> 'a t       val add_seq : 'a t -> (key * 'a) CCHashtbl.sequence -> unit       val add_seq_count : int t -> key CCHashtbl.sequence -> unit       val of_seq_count : key CCHashtbl.sequence -> int t       val to_list : 'a t -> (key * 'a) list       val of_list : (key * 'a) list -> 'a t       val update : 'a t -> f:(key -> 'a option -> 'a option) -> k:key -> unit       val get_or_add : 'a t -> f:(key -> 'a) -> k:key -> 'a       val print :         key CCHashtbl.printer ->         'CCHashtbl.printer -> 'a t CCHashtbl.printer     end   module Make :     functor (X : Hashtbl.HashedType->       sig         type key = X.t         type 'a t = 'Hashtbl.Make(X).t         val create : int -> 'a t         val clear : 'a t -> unit         val reset : 'a t -> unit         val copy : 'a t -> 'a t         val add : 'a t -> key -> '-> unit         val remove : 'a t -> key -> unit         val find : 'a t -> key -> 'a         val find_all : 'a t -> key -> 'a list         val replace : 'a t -> key -> '-> unit         val mem : 'a t -> key -> bool         val iter : (key -> '-> unit) -> 'a t -> unit         val filter_map_inplace : (key -> '-> 'a option) -> 'a t -> unit         val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b         val length : 'a t -> int         val stats : 'a t -> Hashtbl.statistics         val get : 'a t -> key -> 'a option         val get_or : 'a t -> key -> default:'-> 'a         val add_list : 'a list t -> key -> '-> unit         val incr : ?by:int -> int t -> key -> unit         val decr : ?by:int -> int t -> key -> unit         val keys : 'a t -> key sequence         val values : 'a t -> 'a sequence         val keys_list : 'a t -> key list         val values_list : 'a t -> 'a list         val map_list : (key -> '-> 'b) -> 'a t -> 'b list         val to_seq : 'a t -> (key * 'a) sequence         val of_seq : (key * 'a) sequence -> 'a t         val add_seq : 'a t -> (key * 'a) sequence -> unit         val add_seq_count : int t -> key sequence -> unit         val of_seq_count : key sequence -> int t         val to_list : 'a t -> (key * 'a) list         val of_list : (key * 'a) list -> 'a t         val update :           'a t -> f:(key -> 'a option -> 'a option) -> k:key -> unit         val get_or_add : 'a t -> f:(key -> 'a) -> k:key -> 'a         val print : key printer -> 'a printer -> 'a t printer       end end