I went ahead and implemented the textbook version of Tarjan\'s SCC algorithm in Scala. However, I dislike the code - it is very imperative/procedural with lots of mutating state
See Lazy Depth-First Search and Linear Graph Algorithms in Haskell by David King and John Launchbury. It describes many graph algorithms in a functional style, including SCC.