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