functor (G : G_FORD_FULKERSON)
  (F : sig
         type t
         type label = G.E.label
         val max_capacity : label -> t
         val flow : label -> t
         val add : t -> t -> t
         val sub : t -> t -> t
         val zero : t
         val compare : t -> t -> int
         val min_capacity : label -> t
       end)
  -> sig val maxflow : G.t -> G.V.t -> G.V.t -> (G.E.t -> F.t) * F.t end