module CCMixtbl:sig..end
From https://github.com/mjambon/mixtbl (thanks to him). Example:
let inj_int = CCMixtbl.create_inj () ;;
let tbl = CCMixtbl.create 10 ;;
OUnit.assert_equal None (CCMixtbl.get ~inj:inj_int tbl "a");;
CCMixtbl.set inj_int tbl "a" 1;;
OUnit.assert_equal (Some 1) (CCMixtbl.get ~inj:inj_int tbl "a");;
let inj_string = CCMixtbl.create_inj () ;;
CCMixtbl.set inj_string tbl "b" "Hello";
OUnit.assert_equal (Some "Hello") (CCMixtbl.get inj_string tbl "b");;
OUnit.assert_equal None (CCMixtbl.get inj_string tbl "a");;
OUnit.assert_equal (Some 1) (CCMixtbl.get inj_int tbl "a");;
CCMixtbl.set inj_string tbl "a" "Bye";;
OUnit.assert_equal None (CCMixtbl.get inj_int tbl "a");;
OUnit.assert_equal (Some "Bye") (CCMixtbl.get inj_string tbl "a");;
type 'a t
'a represents the type of the keys.type 'b injection
val create : int -> 'a t create n creates a hash table of initial size n.val create_inj : unit -> 'b injection val get : inj:'b injection -> 'a t -> 'a -> 'b optionval set : inj:'b injection -> 'a t -> 'a -> 'b -> unitinjval find : inj:'b injection -> 'a t -> 'a -> 'bNot_found if either the key is not found, or if its value
doesn't belong to the right typeval length : 'a t -> intval clear : 'a t -> unitval remove : 'a t -> 'a -> unitval copy : 'a t -> 'a t val mem : inj:'b injection -> 'a t -> 'a -> boolval iter_keys : 'a t -> ('a -> unit) -> unitval fold_keys : 'a t -> 'b -> ('b -> 'a -> 'b) -> 'btype'asequence =('a -> unit) -> unit
val keys_seq : 'a t -> 'a sequence val bindings_of : inj:'b injection -> 'a t -> ('a * 'b) sequence type value =
val bindings : 'a t -> ('a * value) sequence