sig
  type 'a sequence = ('a -> unit) -> unit
  type 'a gen = unit -> 'a option
  type 'a hash_funs = ('a -> int) array
  val default_hash_funs : int -> 'a CCBloom.hash_funs
  type 'a t
  val create : ?hash:'a CCBloom.hash_funs -> int -> 'a CCBloom.t
  val create_default : ?hash_len:int -> int -> 'a CCBloom.t
  val copy : 'a CCBloom.t -> 'a CCBloom.t
  val size : 'a CCBloom.t -> int
  val load : 'a CCBloom.t -> float
  val mem : 'a CCBloom.t -> 'a -> bool
  val add : 'a CCBloom.t -> 'a -> unit
  val union_mut : into:'a CCBloom.t -> 'a CCBloom.t -> unit
  val union : 'a CCBloom.t -> 'a CCBloom.t -> 'a CCBloom.t
  val inter_mut : into:'a CCBloom.t -> 'a CCBloom.t -> unit
  val inter : 'a CCBloom.t -> 'a CCBloom.t -> 'a CCBloom.t
  val add_list : 'a CCBloom.t -> 'a list -> unit
  val add_seq : 'a CCBloom.t -> 'a CCBloom.sequence -> unit
  val add_gen : 'a CCBloom.t -> 'a CCBloom.gen -> unit
end