Cleanup style: always a space after comma
Simplify by using flatten from Data.Tree
Simplify NFData instance by using flattenSCC
Simplify by making SCC an instance of Functor