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