-
Simon Marlow authored
NOTE: the patch has been split into 9 pieces for easy reviewing, the individual pieces won't build on their own. Part 1 does the following: Distribution.Package: - define the InstalledPackageId type as a newtype of String Distribution.InstalledPackageInfo: - add an installedPackageId field to InstalledPackageInfo - change the type of the depends field from [PackageIdentifier] to [InstalledPackageId] The idea behind this change is to add a way to uniquely identify installed packages, letting us decouple the identity of an installed package instance from its package name and version. The benefits of this are - We get to detect when a package is broken because its dependencies have been recompiled, or because it is being used with a different package than it was compiled against. - We have the possibility of having multiple instances of a given <package>-<version> installed at the same time. In the future this might be used for "ways". It might also be useful during the process of upgrading/recompiling packages.
b1d6a488