sig type key = var type 'data t val create : unit -> 'data t val clear : 'data t -> unit val add : key -> 'data -> 'data t -> unit val find : key -> 'data t -> 'data val iter : (key -> 'data -> unit) -> 'data t -> unit end