diff --git a/src/core/CCList.ml b/src/core/CCList.ml index 98c8ecb1..212bdcc0 100644 --- a/src/core/CCList.ml +++ b/src/core/CCList.ml @@ -1278,6 +1278,11 @@ module Assoc = struct *) end +let assoc = Assoc.get_exn +let assoc_opt = Assoc.get +let mem_assoc = Assoc.mem +let remove_assoc = Assoc.remove + (** {2 References on Lists} *) module Ref = struct diff --git a/src/core/CCList.mli b/src/core/CCList.mli index 9e069337..3f605210 100644 --- a/src/core/CCList.mli +++ b/src/core/CCList.mli @@ -449,14 +449,26 @@ module Assoc : sig @since 0.17 *) end -val assoc_opt : 'a -> ('a * 'b) t -> 'b option -(** Safe version of {!assoc} +val assoc : eq:('a -> 'a -> bool) -> 'a -> ('a * 'b) t -> 'b +(** Same as [Assoc.get_exn] + @since NEXT_RELEASE *) + +val assoc_opt : eq:('a -> 'a -> bool) -> 'a -> ('a * 'b) t -> 'b option +(** Same as [Assoc.get] @since NEXT_RELEASE *) val assq_opt : 'a -> ('a * 'b) t -> 'b option (** Safe version of {!assq} @since NEXT_RELEASE *) +val mem_assoc : eq:('a -> 'a -> bool) -> 'a -> ('a * _) t -> bool +(** Same as [Assoc.mem] + @since NEXT_RELEASE *) + +val remove_assoc : eq:('a -> 'a -> bool) -> 'a -> ('a * 'b) t -> ('a * 'b) t +(** Same as [Assoc.remove] + @since NEXT_RELEASE *) + (** {2 References on Lists} @since 0.3.3 *) diff --git a/src/core/CCListLabels.ml b/src/core/CCListLabels.ml index d90aa088..e9890271 100644 --- a/src/core/CCListLabels.ml +++ b/src/core/CCListLabels.ml @@ -1005,6 +1005,11 @@ module Assoc = struct *) end +let assoc = Assoc.get_exn +let assoc_opt = Assoc.get +let mem_assoc = Assoc.mem +let remove_assoc = Assoc.remove + (** {2 References on Lists} *) module Ref = struct diff --git a/src/core/CCListLabels.mli b/src/core/CCListLabels.mli index 45c86e22..33475789 100644 --- a/src/core/CCListLabels.mli +++ b/src/core/CCListLabels.mli @@ -346,6 +346,18 @@ module Assoc : sig @since 0.17 *) end +val assoc : eq:('a->'a->bool) -> 'a -> ('a,'b) Assoc.t -> 'b +(** Same as [Assoc.get_exn]. @since NEXT_RELEASE *) + +val assoc_opt : eq:('a->'a->bool) -> 'a -> ('a,'b) Assoc.t -> 'b option +(** Same as [Assoc.get]. @since NEXT_RELEASE *) + +val mem_assoc : eq:('a->'a->bool) -> 'a -> ('a,_) Assoc.t -> bool +(** Same as [Assoc.mem]. @since NEXT_RELEASE *) + +val remove_assoc : eq:('a->'a->bool) -> 'a -> ('a,'b) Assoc.t -> ('a,'b) Assoc.t +(** Same as [Assoc.remove]. @since NEXT_RELEASE *) + (** {2 References on Lists} @since 0.3.3 *)