functor (G : G_FORD_FULKERSON->
  functor
    (F : sig
           type t
           type label = G.E.label
           val max_capacity : label -> t
           val min_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
         end->
    sig val maxflow : G.t -> G.V.t -> G.V.t -> (G.E.t -> F.t) * F.t end