sig
type t
type left
type right
val empty : CCMultiMap.BIDIR.t
val is_empty : CCMultiMap.BIDIR.t -> bool
val add :
CCMultiMap.BIDIR.t ->
CCMultiMap.BIDIR.left -> CCMultiMap.BIDIR.right -> CCMultiMap.BIDIR.t
val remove :
CCMultiMap.BIDIR.t ->
CCMultiMap.BIDIR.left -> CCMultiMap.BIDIR.right -> CCMultiMap.BIDIR.t
val cardinal_left : CCMultiMap.BIDIR.t -> int
val cardinal_right : CCMultiMap.BIDIR.t -> int
val remove_left :
CCMultiMap.BIDIR.t -> CCMultiMap.BIDIR.left -> CCMultiMap.BIDIR.t
val remove_right :
CCMultiMap.BIDIR.t -> CCMultiMap.BIDIR.right -> CCMultiMap.BIDIR.t
val mem_left : CCMultiMap.BIDIR.t -> CCMultiMap.BIDIR.left -> bool
val mem_right : CCMultiMap.BIDIR.t -> CCMultiMap.BIDIR.right -> bool
val find_left :
CCMultiMap.BIDIR.t ->
CCMultiMap.BIDIR.left -> CCMultiMap.BIDIR.right CCMultiMap.sequence
val find_right :
CCMultiMap.BIDIR.t ->
CCMultiMap.BIDIR.right -> CCMultiMap.BIDIR.left CCMultiMap.sequence
val find1_left :
CCMultiMap.BIDIR.t ->
CCMultiMap.BIDIR.left -> CCMultiMap.BIDIR.right option
val find1_right :
CCMultiMap.BIDIR.t ->
CCMultiMap.BIDIR.right -> CCMultiMap.BIDIR.left option
val fold :
('a -> CCMultiMap.BIDIR.left -> CCMultiMap.BIDIR.right -> 'a) ->
'a -> CCMultiMap.BIDIR.t -> 'a
val pairs :
CCMultiMap.BIDIR.t ->
(CCMultiMap.BIDIR.left * CCMultiMap.BIDIR.right) CCMultiMap.sequence
val add_pairs :
CCMultiMap.BIDIR.t ->
(CCMultiMap.BIDIR.left * CCMultiMap.BIDIR.right) CCMultiMap.sequence ->
CCMultiMap.BIDIR.t
val seq_left :
CCMultiMap.BIDIR.t -> CCMultiMap.BIDIR.left CCMultiMap.sequence
val seq_right :
CCMultiMap.BIDIR.t -> CCMultiMap.BIDIR.right CCMultiMap.sequence
end