
Better diagnostic is probably they way forward for now. I feel that cabal used to be better at telling me why it made certain dependency choices. Now it tells me very little (i.e. basically a list of packages it tried, without information about why they were tried).
There's a bug in cabal-install-1.16.0 which I fixed in HEAD (I hope) that caused cabal-install to no longer print the reason why a goal is tried when -v3 is selected. One of the problems in printing diagnostics after the fact is that there's a lot of information during solving, but most of it is discarded. Currently, most of the info about the actual install plan is recomputed after the plan has been communicated back by the solver. This has the advantage of making it easy to still support both solvers, but it's making it unnecessarily difficult to include additional info in the final output. I have quite a number of ideas on how to improve the diagnostics in principle, but I can currently give no estimate on how long it will take me in practice to implement any of this. Cheers, Andres