module Topological:sig..end
Topological order.
This functor provides functions which allow iterating over a graph in
topological order. Cycles in graphs are allowed. Specification is the
following:
if vertex x is visited before vertex y
then either there is a path from x to y,
or there is no path from y to x.
In the particular case of a DAG, this simplifies to:
if there is an edge from x to y, then x is visited before y.
module type G =sig..end
Minimal graph signature to provide.
module Make:
Functor providing topological iterators over a graph.
module Make_stable:
Provide the same features than Topological.Make, except that the resulting
topological ordering is stable according to vertices comparison: if two
vertices v1 and v2 are topologically equal, v1 is presented first to
the iterator if and only if G.V.compare v1 v2 <= 0.