sig type 'a t type key val empty : 'a Data.Map.t val add : Data.Map.key -> 'a -> 'a Data.Map.t -> 'a Data.Map.t val find : Data.Map.key -> 'a Data.Map.t -> 'a end