Thanks to a contribution from Andre van der Merwe (blog, twitter), NGenerics now features Tarjan's strongly connected components algorithm on it's Graph implementation. By using Tarjan's algorithm, we're able to find the strongly connected components (read : cycles) in a directed graph. You can invoke it via the FindCycles method on the Graph<T> class, available from build # (30 Jun 09 13:40).