A fix for the following problem:

 The solver creates an install plan including installed package
ids (as well as package ids). When cabal-install creates a Setup
command, this does not specify the hashes but only the package and its
version. Although no one cabal database can contain two instances of
the same package with the same version, it is possible to have one
package / version in the global package db and exactly the same
package / version in the user package db. Thus it is possible that the
wrong instance can be used in Setup even though the solver knows
exactly which instance to use. See
https://github.com/haskell/cabal/issues/1460.