_Shortly:_ Allow to use external program for dependency solving. _Motivation:_ Even after the solver is split into a separate package, plugging new solvers into `cabal-install` would require it to (optionally) depend on new solver packages. Non-dependent - "plugin" - approach, where `cabal-install` executes external process would help with this. For example I would like to experiment with SMT solvers, `matrix.h.h.o` might want to use own solver to exploit controversial install plans. Also experimenting with current solver would be easier, as one could have different variants, yet single `cabal` -executable. _Details:_ - Input: constraints and preferences (AFAICS what is installed and what we want to be installed are the same from solver point of view,) - Output: _exact-configuration_ - Format: ? ping @kosmikus, @grayjay, @ezyang, @BardurArantsson