functor (G : G->
  functor (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