Module type Identifiable.Map

module type Map = sig .. end

module T: Map.OrderedType 
include Map.S
val filter_map : 'a t -> f:(key -> 'a -> 'b option) -> 'b t
val of_list : (key * 'a) list -> 'a t
val disjoint_union : ?eq:('a -> 'a -> bool) ->
?print:(Format.formatter -> 'a -> unit) -> 'a t -> 'a t -> 'a t

disjoint_union m1 m2 contains all bindings from m1 and m2. If some binding is present in both and the associated value is not equal, a Fatal_error is raised

val union_right : 'a t -> 'a t -> 'a t

union_right m1 m2 contains all bindings from m1 and m2. If some binding is present in both, the one from m2 is taken

val union_left : 'a t -> 'a t -> 'a t

union_left m1 m2 = union_right m2 m1

val union_merge : ('a -> 'a -> 'a) -> 'a t -> 'a t -> 'a t
val rename : key t -> key -> key
val map_keys : (key -> key) -> 'a t -> 'a t
val keys : 'a t -> Stdlib.Set.Make(T).t
val data : 'a t -> 'a list
val of_set : (key -> 'a) -> Stdlib.Set.Make(T).t -> 'a t
val transpose_keys_and_data : key t -> key t
val transpose_keys_and_data_set : key t -> Stdlib.Set.Make(T).t t
val print : (Format.formatter -> 'a -> unit) ->
Format.formatter -> 'a t -> unit