functor (L : sig type t end) (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