module Make (
O
:
Map.OrderedType
)
: S
with type 'a t = 'a Map.Make(O).t
and type key = O.t
include Map.S
val get : key -> 'a t -> 'a option
Safe version of find
val get_or : key -> 'a t -> or_:'a -> 'a
get_or k m ~or_
returns the value associated to k
if present,
and returns or_
otherwise (if k
doesn't belong in m
)
Since 0.16
val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
update k f m
calls f (Some v)
if find k m = v
,
otherwise it calls f None
. In any case, if the result is None
k
is removed from m
, and if the result is Some v'
then
add k v' m
is returned.
val merge_safe : f:(key -> [ `Both of 'a * 'b | `Left of 'a | `Right of 'b ] -> 'c option) ->
'a t -> 'b t -> 'c t
merge_safe ~f a b
merges the maps a
and b
together.
Since 0.17
val of_seq : (key * 'a) CCMap.sequence -> 'a t
val add_seq : 'a t -> (key * 'a) CCMap.sequence -> 'a t
Since 0.14
val to_seq : 'a t -> (key * 'a) CCMap.sequence
val of_list : (key * 'a) list -> 'a t
val add_list : 'a t -> (key * 'a) list -> 'a t
Since 0.14
val keys : 'a t -> key CCMap.sequence
Iterate on keys only
Since 0.15
val values : 'a t -> 'a CCMap.sequence
Iterate on values only
Since 0.15
val to_list : 'a t -> (key * 'a) list
val pp : ?start:string ->
?stop:string ->
?arrow:string ->
?sep:string -> key CCMap.printer -> 'a CCMap.printer -> 'a t CCMap.printer
val print : ?start:string ->
?stop:string ->
?arrow:string ->
?sep:string ->
key CCMap.formatter -> 'a CCMap.formatter -> 'a t CCMap.formatter