Module Rmap


module Rmap: sig .. end
This module implements an imperative map based on a mutable AVL tree. It is much faster than the OCaml standard map. In terms of constants, it is about 3 times slower than Hashtbl, however it has better guarenteed time complexity. Most people wanting a hashtbl replacement will want to use Hashtree, which has the same guarentee and much better constants (they are comparable to Hashtbl). This module is exposed to make it easy to build derived data structures more than to be directly used.

see Hashtree for function descriptions and individual time complexity.



This module implements an imperative map based on a mutable AVL tree. It is much faster than the OCaml standard map. In terms of constants, it is about 3 times slower than Hashtbl, however it has better guarenteed time complexity. Most people wanting a hashtbl replacement will want to use Hashtree, which has the same guarentee and much better constants (they are comparable to Hashtbl). This module is exposed to make it easy to build derived data structures more than to be directly used.

see Hashtree for function descriptions and individual time complexity.

type ('a, 'b) t 
include Sexpable.S2
include Binable.S2
val create : unit -> ('a, 'b) t
val invariant : ('a, 'b) t -> unit
val add : ('a, 'b) t -> key:'a -> data:'b -> unit
val remove : ('a, 'b) t -> 'a -> unit
val find : ('a, 'b) t -> 'a -> 'b option
val fold : ('a, 'b) t -> init:'c -> f:(key:'a -> data:'b -> 'c -> 'c) -> 'c
val iter : ('a, 'b) t -> f:(key:'a -> data:'b -> unit) -> unit
module type Key = sig .. end
module type S = sig .. end
module Make: 
functor (Key : Key) -> S