[print prettier scc modules
John Meacham <john@repetae.net>**20061130102450] hunk ./Ho/Build.hs 19
+import Data.Tree
hunk ./Ho/Build.hs 121
-    let scc = G.sccGroups (G.newGraph ms (fromModule . hsModuleName . fst3) (hsModuleRequires . fst3) )
-    when (dump FD.SccModules) $ CharIO.putErrLn $ "scc modules:\n" ++ unlines ( map  (\xs -> show [ hsModuleName x | (x,y,z) <- xs ]) scc)
+    let mgraph =  (G.newGraph ms (fromModule . hsModuleName . fst3) (hsModuleRequires . fst3) )
+        scc = G.sccGroups mgraph
+        mgraph' =  (G.newGraph scc (fromModule . hsModuleName . fst3 . head) (concatMap ff . concatMap (hsModuleRequires . fst3)) )
+        ff n = [ fromModule . hsModuleName $ ms | gs@((ms,_,_):_) <- scc, n `elem` map (fromModule . hsModuleName . fst3) gs]
+    when (dump FD.SccModules) $ do
+        CharIO.putErrLn $ "scc modules:\n" ++ unlines ( map  (\xs -> show [ hsModuleName x | (x,y,z) <- xs ]) scc)
+        putErrLn $ drawForest (map (fmap (show . map (hsModuleName . fst3))) (G.dff mgraph'))