Strongly_connected_components.Smodule Id : Identifiable.SIf (a -> set) belongs to the map, it means that there are edges from a to every element of set. It is assumed that no edge points to a vertex not represented in the map.
val connected_components_sorted_from_roots_to_leaf :
directed_graph ->
component arrayval component_graph : directed_graph -> (component * int list) array