  Hash-based depdendcies – please review   with ghc6-6.12.1, it
is really easy to use hash-based dependencies. I implemented it
in haskell-devscripts, but it needs review and testing. The
patches in question are:  Here is an overview of how it works:
== Background ==  If you use ghc-pkg from 6.12, you will see
that each package has a field "id", comprising of the package
name, the version, and a hash that represents the particular
ABI:  # ghc-pkg6 field mtl id id: mtl-  Packages also depend on
these full ids:  # cat haskell-
ifelse-0.85/debian/libghc6-ifelse-
dev/var/lib/ghc-6.12.1/package.conf.d/IfElse-0.85.conf  name:
IfElse version: 0.85 id:
IfElse-0.85-2ff8a6635b2bda1737cc09f054feaeee depends: base-  The
ids can change even when the upstream version does not for
various reasons, and our current dependency system does not
catch this.  == Part 1 ==  So now there is dh_haskell_provides
in the haskell-devscripts code. It creates a ${haskell:Provides}
substvar for the -dev and -proc packages:  # grep Provides h