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