functor (X : Sig.X->
  sig
    type t
    val empty : Use.Make.t
    val find : X.r -> Use.Make.t -> Use.elt
    val add : X.r -> Use.elt -> Use.Make.t -> Use.Make.t
    val mem : X.r -> Use.Make.t -> bool
    val print : Use.Make.t -> unit
    val up_add : Use.Make.t -> Use.ST.elt -> X.r -> X.r list -> Use.Make.t
    val congr_add : Use.Make.t -> X.r list -> Use.ST.t
    val up_close_up : Use.Make.t -> X.r -> X.r -> Use.Make.t
    val congr_close_up : Use.Make.t -> X.r -> X.r list -> Use.elt
  end