···187187 of an obligatory arc. Use the "unbalanced" heuristic impllemented in
188188 [takemax] to discriminate between competing possibilities. If a vertex
189189 is found, remove it from the returned delta bins. *)
190190+(*
190191 let max_from_deltas g ({ delta_bins; _ } as st) =
191192 let rec f = function
192193 | Seq.Nil -> None
···196197 | Some (_, v) -> Some (v, remove_from_bin v st))
197198 in
198199 f (IM.to_rev_seq delta_bins ())
200200+*)
201201+ let max_from_deltas g ({ delta_bins; _ } as st) =
202202+ let rec f im =
203203+ if IM.is_empty im then
204204+ None
205205+ else
206206+ let k, dbin = IM.max_binding im in
207207+ (match VS.fold (takemax g) dbin None with
208208+ | None -> f (IM.remove k im)
209209+ | Some (_, v) -> Some (v, remove_from_bin v st))
210210+ in
211211+ f delta_bins
199212200213 (* Include any leftward arcs due to the two-cycles that were removed by
201214 preprocessing. *)