Hello all,

My Zurihac2014 project was to address https://github.com/haskell/cabal/issues/975. I thought the cleanest way was to make two passes:

1. put executeInstallPlan into a Shell Monad to force printing debug/status messages through the monad, and track the current status of the parallel build.

and

2. Use this information to write a nice UI

I have implemented (1) and here is the pull request https://github.com/haskell/cabal/pull/1940. I'd appreciate if someone could make a thorough code review as it's my first commit to cabal and I only understand a small corner of the code base.

If this is accepted then I also look forward to working on (2), probably based on ncurses.

Best,
Greg