functor
  (G : G) (W : sig type t = G.E.label val compare : t -> t -> int end) (UF : 
  sig
    type elt = G.V.t
    type t
    val init : elt list -> t
    val find : elt -> t -> elt
    val union : elt -> elt -> t -> unit
  end-> sig val spanningtree : Kruskal.G.t -> Kruskal.G.E.t list end