functor (G : G) ->
functor (W : sig type t = G.E.label val compare : t -> t -> int end) ->
functor
(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