sig   type 'a sequence = ('-> unit) -> unit   type 'a gen = unit -> 'a option   module Key :     sig       type 'a t       val create : unit -> 'CCHet.Key.t       val equal : 'CCHet.Key.t -> 'CCHet.Key.t -> bool     end   type pair = Pair : 'CCHet.Key.t * '-> CCHet.pair   module Tbl :     sig       type t       val create : ?size:int -> unit -> CCHet.Tbl.t       val mem : CCHet.Tbl.t -> 'CCHet.Key.t -> bool       val add : CCHet.Tbl.t -> 'CCHet.Key.t -> '-> unit       val length : CCHet.Tbl.t -> int       val find : CCHet.Tbl.t -> 'CCHet.Key.t -> 'a option       val find_exn : CCHet.Tbl.t -> 'CCHet.Key.t -> 'a       val iter : (CCHet.pair -> unit) -> CCHet.Tbl.t -> unit       val to_seq : CCHet.Tbl.t -> CCHet.pair CCHet.sequence       val of_seq : CCHet.pair CCHet.sequence -> CCHet.Tbl.t       val add_seq : CCHet.Tbl.t -> CCHet.pair CCHet.sequence -> unit       val add_list : CCHet.Tbl.t -> CCHet.pair list -> unit       val of_list : CCHet.pair list -> CCHet.Tbl.t       val to_list : CCHet.Tbl.t -> CCHet.pair list     end   module Map :     sig       type t       val empty : CCHet.Map.t       val mem : 'CCHet.Key.t -> CCHet.Map.t -> bool       val add : 'CCHet.Key.t -> '-> CCHet.Map.t -> CCHet.Map.t       val length : CCHet.Map.t -> int       val cardinal : CCHet.Map.t -> int       val find : 'CCHet.Key.t -> CCHet.Map.t -> 'a option       val find_exn : 'CCHet.Key.t -> CCHet.Map.t -> 'a       val iter : (CCHet.pair -> unit) -> CCHet.Map.t -> unit       val to_seq : CCHet.Map.t -> CCHet.pair CCHet.sequence       val of_seq : CCHet.pair CCHet.sequence -> CCHet.Map.t       val add_seq : CCHet.Map.t -> CCHet.pair CCHet.sequence -> CCHet.Map.t       val add_list : CCHet.Map.t -> CCHet.pair list -> CCHet.Map.t       val of_list : CCHet.pair list -> CCHet.Map.t       val to_list : CCHet.Map.t -> CCHet.pair list     end end