Use smarter tree pruning to avoid OOM with tangled graphs.

The old algorithm simply generated a bunch of lines and used
(nub.sort) to prune the output. This does not work well for graphs with
extremely high levels of inter-dependency, and will cause OOM.

The new algorithm maintains a list of already-visited packages and skips
duplicate subtrees.
1 file changed
tree: 745035039be966da7ed2ea0ad1e79f8d9455a9ab
  1. Setup.hs
  2. cabal-graphdeps.cabal
  3. license.txt
  4. src/