module type S =sig..end
type key
type 'a t
include Sexpable.S1
val create : unit -> 'a tval invariant : 'a t -> unitval add : 'a t -> key:key -> data:'a -> unitval remove : 'a t -> key -> unitval find : 'a t -> key -> 'a optionval fold : 'a t -> init:'b -> f:(key:key -> data:'a -> 'b -> 'b) -> 'bval iter : 'a t -> f:(key:key -> data:'a -> unit) -> unit