
On Saturday 16 April 2011 14:41:00, Dominic Steinitz wrote:
Hi, I have
dom1@fourier:~/asn1_0> ghc-pkg list --user /home/dom1/.ghc/i386-linux-6.12.1/package.conf.d
mtl-1.1.0.2 mtl-2.0.1.0
But I get the following error:
[4 of 6] Compiling LatticeMod ( LatticeMod.hs, interpreted ) [5 of 6] Compiling ConstraintGeneration ( ConstraintGeneration.lhs, interpreted )
ConstraintGeneration.lhs:781:6: Overlapping instances for Monad (Either String) <snip> Language.ASN1.PER.Integer, Language.ASN1.PER.IntegerAux.
If I do
dom1@fourier:~/asn1_0> ghc-pkg hide mtl-2.0.1.0
Then the error goes away. But if I do
ghc-pkg hide mtl-1.1.0.2
Then I still get the error.
Some library you use was built against mtl-1, I think, so you inherit that instance.
Is there a wiki page that tells me what to do to upgrade from mtl-1 to mtl-2? Or perhaps someone can tell me what to do?
Rebuild the libraries that depend on mtl against mtl-2. $ ghc-pkg unregister mtl-1.1.0.2 should tell you which packages are affected, unregister those first (or later after unregistering mtl-1.1.0.2 with --force) and reinstall them against mtl-2. That doesn't work however, if any of them have a dependency bound mtl < 2, so check that first (and even if they have no upper bound on mtl, they may use the State or Writer, ... data constructors which aren't available anymore since State etc. are now type synonyms). Or upgrade to ghc-7.0.3 and install everything fresh.
Many thanks, Dominic.