diff --git a/src/data/CCHet.ml b/src/data/CCHet.ml index 183a296f..b6254dfc 100644 --- a/src/data/CCHet.ml +++ b/src/data/CCHet.ml @@ -109,6 +109,10 @@ module Tbl = struct let add t k v = add_pair_ t (Pair (k,v)) + let remove (type a) t (k:a Key.t) = + let module K = (val k) in + M.remove t K.id + let length t = M.length t let iter f t = M.iter (fun _ pair -> f (pair_of_e_pair pair)) t @@ -167,6 +171,10 @@ module Map = struct let add (type a) (k : a Key.t) v t = let module K = (val k) in add_e_pair_ (E_pair (k, K.Store v)) t + + let remove (type a) (k: a Key.t) t = + let module K = (val k) in + M.remove K.id t let cardinal t = M.cardinal t diff --git a/src/data/CCHet.mli b/src/data/CCHet.mli index 12ba06e0..3dc1a5f3 100644 --- a/src/data/CCHet.mli +++ b/src/data/CCHet.mli @@ -33,6 +33,8 @@ module Tbl : sig val add : t -> 'a Key.t -> 'a -> unit + val remove : t -> _ Key.t -> unit + val length : t -> int val find : t -> 'a Key.t -> 'a option @@ -65,6 +67,8 @@ module Map : sig val add : 'a Key.t -> 'a -> t -> t + val remove : _ Key.t -> t -> t + val length : t -> int val cardinal : t -> int