type ('a, 'b) t val create : cmp:('a -> 'a -> int) -> ('a, 'b) t val add : ('a, 'b) t -> key:'a -> data:'b -> ('a, 'b) t val remove : ('a, 'b) t -> key:'a -> ('a, 'b) t val find : ('a, 'b) t -> key:'a -> 'b option val iter : ('a, 'b) t -> f:(key:'a -> data:'b -> unit) -> unit