3 from StdOverloaded import class <, class ==
4 from StdClass import class Ord, class Eq
7 * Find all strongly connected components using tarjan's algorithm
8 * see: https://en.wikipedia.org/wiki/Tarjan's_strongly_connected_components_algorithm
10 * @param list of nodes together with their successors
11 * @return the strongly connected components
13 scc :: ![(a, [a])] -> [[a]] | Eq, Ord a