Provided by: ocaml-man_4.14.1-1ubuntu1_all bug

NAME

       Ephemeron.S   -   The   output   signature   of   the   functors   Ephemeron.K1.Make   and
       Ephemeron.K2.Make.

Module type

       Module type   Ephemeron.S

Documentation

       Module type S
        = sig end

       The output signature of the functors Ephemeron.K1.Make and Ephemeron.K2.Make .  These hash
       tables  are  weak in the keys. If all the keys of a binding are alive the binding is kept,
       but if one of the keys of the binding is dead then the binding is removed.

       Propose the same interface as usual hash table. However since the bindings are weak,  even
       if  mem  h  k  is  true,  a  subsequent  find  h k may raise Not_found because the garbage
       collector can run between the two.

       Moreover, the table shouldn't be modified during a call to iter .  Use  filter_map_inplace
       in this case.

       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 -> 'a -> unit

       val remove : 'a t -> key -> unit

       val find : 'a t -> key -> 'a

       val find_opt : 'a t -> key -> 'a option

       val find_all : 'a t -> key -> 'a list

       val replace : 'a t -> key -> 'a -> unit

       val mem : 'a t -> key -> bool

       val iter : (key -> 'a -> unit) -> 'a t -> unit

       val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit

       val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b

       val length : 'a t -> int

       val stats : 'a t -> Hashtbl.statistics

       val to_seq : 'a t -> (key * 'a) Seq.t

       val to_seq_keys : 'a t -> key Seq.t

       val to_seq_values : 'a t -> 'a Seq.t

       val add_seq : 'a t -> (key * 'a) Seq.t -> unit

       val replace_seq : 'a t -> (key * 'a) Seq.t -> unit

       val of_seq : (key * 'a) Seq.t -> 'a t

       val clean : 'a t -> unit

       remove all dead bindings. Done automatically during automatic resizing.

       val stats_alive : 'a t -> Hashtbl.statistics

       same as Hashtbl.SeededS.stats but only count the alive bindings