Topological sorting is an algorithm that takes a graph consisting of
nodes and other nodes that depend on them, forming a partial order,
and returns a list representing a total ordering of the graph. If the
graph is cyclic, the topological sort will fail. The
procedure topological-sort returns three values. If
sorting succeeds, the first value contains the result and the second
and third are #false. If sorting fails, the result
is #false and the second and third value may provide
additional information about the error.