functor (K : OrderedType) (V : OrderedType) ->
sig
type key = K.t
type value = V.t
type t
val empty : t
val is_empty : t -> bool
val add : t -> key -> value -> t
val remove : t -> key -> value -> t
val remove_all : t -> key -> t
val mem : t -> key -> bool
val find : t -> key -> value list
val find_iter : t -> key -> (value -> unit) -> unit
val count : t -> key -> int
val iter : t -> (key -> value -> unit) -> unit
val fold : t -> 'a -> ('a -> key -> value -> 'a) -> 'a
val size : t -> int
val union : t -> t -> t
val inter : t -> t -> t
val diff : t -> t -> t
val equal : t -> t -> bool
val compare : t -> t -> int
val submap : t -> t -> bool
val to_seq : t -> (key * value) sequence
val of_seq : ?init:t -> (key * value) sequence -> t
val keys : t -> key sequence
val values : t -> value sequence
end