Module type CCMultiMap.BIDIR

module type BIDIR = sig .. end

type t 
type left 
type right 
val empty : t
val is_empty : t -> bool
val add : t ->
left -> right -> t
Add a binding (left,right)
val remove : t ->
left -> right -> t
Remove a specific binding
val cardinal_left : t -> int
Number of distinct left keys
val cardinal_right : t -> int
Number of distinct right keys
val remove_left : t -> left -> t
Remove all bindings for the left key
val remove_right : t -> right -> t
Remove all bindings for the right key
val mem_left : t -> left -> bool
Is the left key present in at least one pair?
val mem_right : t -> right -> bool
Is the right key present in at least one pair?
val find_left : t ->
left -> right CCMultiMap.sequence
Find all bindings for this given left-key
val find_right : t ->
right -> left CCMultiMap.sequence
Find all bindings for this given right-key
val find1_left : t -> left -> right option
like CCMultiMap.BIDIR.find_left but returns at most one value
val find1_right : t -> right -> left option
like CCMultiMap.BIDIR.find_right but returns at most one value
val fold : ('a -> left -> right -> 'a) ->
'a -> t -> 'a
Fold on pairs
val pairs : t ->
(left * right) CCMultiMap.sequence
Iterate on pairs
val add_pairs : t ->
(left * right) CCMultiMap.sequence ->
t
Add pairs
val seq_left : t -> left CCMultiMap.sequence
val seq_right : t -> right CCMultiMap.sequence