sig
type 'a key
module Key :
sig
val create : unit -> 'a Hmap.key
type t
val hide_type : 'a Hmap.key -> Hmap.Key.t
val equal : Hmap.Key.t -> Hmap.Key.t -> bool
val compare : Hmap.Key.t -> Hmap.Key.t -> int
end
type t
val empty : Hmap.t
val is_empty : Hmap.t -> bool
val mem : 'a Hmap.key -> Hmap.t -> bool
val add : 'a Hmap.key -> 'a -> Hmap.t -> Hmap.t
val singleton : 'a Hmap.key -> 'a -> Hmap.t
val rem : 'a Hmap.key -> Hmap.t -> Hmap.t
val find : 'a Hmap.key -> Hmap.t -> 'a option
val get : 'a Hmap.key -> Hmap.t -> 'a
type binding = B : 'a Hmap.key * 'a -> Hmap.binding
val iter : (Hmap.binding -> unit) -> Hmap.t -> unit
val fold : (Hmap.binding -> 'a -> 'a) -> Hmap.t -> 'a -> 'a
val for_all : (Hmap.binding -> bool) -> Hmap.t -> bool
val exists : (Hmap.binding -> bool) -> Hmap.t -> bool
val filter : (Hmap.binding -> bool) -> Hmap.t -> Hmap.t
val cardinal : Hmap.t -> int
val any_binding : Hmap.t -> Hmap.binding option
val get_any_binding : Hmap.t -> Hmap.binding
module type KEY_INFO = sig type 'a t end
module type S =
sig
type 'a key
module Key :
sig
type 'a info
val create : 'a Hmap.S.Key.info -> 'a Hmap.S.key
val info : 'a Hmap.S.key -> 'a Hmap.S.Key.info
type t
val hide_type : 'a Hmap.S.key -> Hmap.S.Key.t
val equal : Hmap.S.Key.t -> Hmap.S.Key.t -> bool
val compare : Hmap.S.Key.t -> Hmap.S.Key.t -> int
end
type t
val empty : Hmap.S.t
val is_empty : Hmap.S.t -> bool
val mem : 'a Hmap.S.key -> Hmap.S.t -> bool
val add : 'a Hmap.S.key -> 'a -> Hmap.S.t -> Hmap.S.t
val singleton : 'a Hmap.S.key -> 'a -> Hmap.S.t
val rem : 'a Hmap.S.key -> Hmap.S.t -> Hmap.S.t
val find : 'a Hmap.S.key -> Hmap.S.t -> 'a option
val get : 'a Hmap.S.key -> Hmap.S.t -> 'a
type binding = B : 'a Hmap.S.key * 'a -> Hmap.S.binding
val iter : (Hmap.S.binding -> unit) -> Hmap.S.t -> unit
val fold : (Hmap.S.binding -> 'a -> 'a) -> Hmap.S.t -> 'a -> 'a
val for_all : (Hmap.S.binding -> bool) -> Hmap.S.t -> bool
val exists : (Hmap.S.binding -> bool) -> Hmap.S.t -> bool
val filter : (Hmap.S.binding -> bool) -> Hmap.S.t -> Hmap.S.t
val cardinal : Hmap.S.t -> int
val any_binding : Hmap.S.t -> Hmap.S.binding option
val get_any_binding : Hmap.S.t -> Hmap.S.binding
end
module Make :
functor (Key_info : KEY_INFO) ->
sig
type 'a key
module Key :
sig
type 'a info = 'a Key_info.t
val create : 'a info -> 'a key
val info : 'a key -> 'a info
type t
val hide_type : 'a key -> t
val equal : t -> t -> bool
val compare : t -> t -> int
end
type t
val empty : t
val is_empty : t -> bool
val mem : 'a key -> t -> bool
val add : 'a key -> 'a -> t -> t
val singleton : 'a key -> 'a -> t
val rem : 'a key -> t -> t
val find : 'a key -> t -> 'a option
val get : 'a key -> t -> 'a
type binding = B : 'a key * 'a -> binding
val iter : (binding -> unit) -> t -> unit
val fold : (binding -> 'a -> 'a) -> t -> 'a -> 'a
val for_all : (binding -> bool) -> t -> bool
val exists : (binding -> bool) -> t -> bool
val filter : (binding -> bool) -> t -> t
val cardinal : t -> int
val any_binding : t -> binding option
val get_any_binding : t -> binding
end
end