Module BatHashtbl.Make

Functor building an implementation of the hashtable structure. The functor Hashtbl.Make returns a structure containing a type key of keys and a type 'a t of hash tables associating data of type 'a to keys of type key. The operations perform similarly to those of the generic interface, but use the hashing and equality functions specified in the functor argument H instead of generic equality and hashing.

Parameters

module H : HashedType

Signature

type key = H.t
type 'a t
val create : int -> 'a t
val length : 'a t -> int
val is_empty : 'a t -> bool
val clear : 'a t -> unit
val copy : 'a t -> 'a t
val add : 'a t -> key -> 'a -> unit
val remove : 'a t -> key -> unit
val remove_all : 'a t -> key -> unit
val find : 'a t -> key -> 'a
val find_all : 'a t -> key -> 'a list
val find_default : 'a t -> key -> 'a -> 'a
val find_option : 'a t -> key -> 'a option
val replace : 'a t -> key -> 'a -> unit
val mem : 'a t -> key -> bool
val iter : (key -> 'a -> unit) -> 'a t -> unit
val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
val map : (key -> 'b -> 'c) -> 'b t -> 'c t
val map_inplace : (key -> 'a -> 'a) -> 'a t -> unit
val filter : ('a -> bool) -> 'a t -> 'a t
val filter_inplace : ('a -> bool) -> 'a t -> unit
val filteri : (key -> 'a -> bool) -> 'a t -> 'a t
val filteri_inplace : (key -> 'a -> bool) -> 'a t -> unit
val filter_map : (key -> 'a -> 'b option) -> 'a t -> 'b t
val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
val modify : key -> ('a -> 'a) -> 'a t -> unit
val modify_def : 'a -> key -> ('a -> 'a) -> 'a t -> unit
val modify_opt : key -> ('a option -> 'a option) -> 'a t -> unit
val merge : (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
val merge_all : (key -> 'a list -> 'b list -> 'c list) -> 'a t -> 'b t -> 'c t
val keys : 'a t -> key BatEnum.t
val values : 'a t -> 'a BatEnum.t
val enum : 'a t -> (key * 'a) BatEnum.t
val to_list : 'a t -> (key * 'a) list
val of_enum : (key * 'a) BatEnum.t -> 'a t
val of_list : (key * 'a) list -> 'a t
val print : ?first:string -> ?last:string -> ?sep:string -> ('a BatInnerIO.output -> key -> unit) -> ('a BatInnerIO.output -> 'b -> unit) -> 'a BatInnerIO.output -> 'b t -> unit
Override modules

The following modules replace functions defined in Hashtbl with functions behaving slightly differently but having the same name. This is by design: the functions meant to override the corresponding functions of Hashtbl.

module Exceptionless : sig ... end

Operations on Hashtbl without exceptions.

module Infix : sig ... end

Infix operators over a BatHashtbl

module Labels : sig ... end

Operations on Hashtbl with labels.