External interface

The graph: a list of nodes uniquely identified by keys,
with a list of keys of nodes this node has edges to.
The out-list may contain keys that don't correspond to
nodes of the graph; such edges are ignored.

The graph: a list of nodes uniquely identified by keys,
with a list of keys of nodes this node has edges to.
The out-list may contain keys that don't correspond to
nodes of the graph; such edges are ignored.

The strongly connected components of a directed graph, topologically
sorted. The function is the same as stronglyConnComp, except that
all the information about each node retained.
This interface is used when you expect to apply SCC to
(some of) the result of SCC, so you don't want to lose the
dependency information.

Building graphs

Build a graph from a list of nodes uniquely identified by keys,
with a list of keys of nodes this node should have edges to.
The out-list may contain keys that don't correspond to
nodes of the graph; they are ignored.