# Functor Topological.Make_stable

    module Make_stable: functor (G : siginclude Topological.G
    val in_degree : t -> V.t -> intend) -> sig .. end

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`. In particular, the resulting order is not dependent on the provided hash function. This property is not guaranteed by the functor `Topological.Make`. The counterpart is a less efficient implementation: worst time complexity is O(E*V*ln(V)) instead of O(E*V) (with E = number of edges and V = number of vertices.

Parameters:

`G` | : | `sig include G val in_degree : t -> V.t -> int end`

    val fold : (G.V.t -> 'a -> 'a) -> Topological.G.t -> 'a -> 'a

    val iter : (G.V.t -> unit) -> Topological.G.t -> unit