functor (Key : Key->
  sig
    type key = Key.t
    type t
    type sexpable = t
    val sexp_of_t : sexpable -> Sexplib.Sexp.t
    val t_of_sexp : Sexplib.Sexp.t -> sexpable
    val create : (key * float) list -> [ `Fail of string | `Succeed of t ]
    val get : t -> key -> float
  end