functor (L : sig type t end->
  functor (V : Sig.COMPARABLE->
    sig
      type data = L.t
      and label = V.t
      and t = Util.DataV.data Pervasives.ref * V.t
      val compare : Util.DataV.t -> Util.DataV.t -> int
      val hash : Util.DataV.t -> int
      val equal : Util.DataV.t -> Util.DataV.t -> bool
      val create : Util.DataV.data -> V.t -> Util.DataV.t
      val label : Util.DataV.t -> V.t
      val data : Util.DataV.t -> Util.DataV.data
      val set_data : Util.DataV.t -> Util.DataV.data -> unit
    end