functor
  (G : G) (W : sig type t = G.E.label val compare : t -> t -> int end->
  sig val spanningtree : Kruskal.G.t -> Kruskal.G.E.t list end