[Haskell-cafe] broken on build encoding
Daniel Fischer
daniel.is.fischer at googlemail.com
Tue Apr 5 11:10:18 CEST 2011
On Tuesday 05 April 2011 03:07:31, Gang Yu wrote:
> Hi Daniel,
>
> > To circumvent the build failure, have an mtl-1.*, but no mtl-2.*
> > available, then it should build (or you could edit the source to
> > replace all occurrences of the data constructor State with the
> > function state to make it build with mtl-2.*).
> >
> It does not work, I cleaned up my ghc and unregistered the
> mtl-2.0.1.0,
>
> then reinstall encoding, it gets the following failure:
>
> [ 6 of 65] Compiling Data.Encoding.ByteSource (
> Data/Encoding/ByteSource.hs, dist/build/Data/Encoding/ByteSource.o )
>
> Data/Encoding/ByteSource.hs:131:9:
> No instance for (Monad (Either DecodingException))
<snip>
> cabal: Error: some packages failed to install:
> encoding-0.6.4 failed during the building phase. The exception was:
> ExitFailure 1
That seems to be related to a change in Monad instances, formerly, there
was an
instance (Error e) => Monad (Either e) where ...
defined in Control.Monad.Error, now there's an
instance Monad (Either e) where ...
defined in Control.Monad.Instances. So in Data.Encoding.ByteSource, there's
an
instance Monad (Either DecodingException) where ...
but that wouldn't work with the new instance, so it's conditionally
included per
#ifndef MIN_VERSION_mtl(2,0,0,0)
instance Monad (Either DecodingException) where
...
#endif
Apparently that doesn't work as expected, probably should be
#if !MIN_VERSION_mtl(2,0,0)
Short of changing the code, try installing encoding-0.6.3; that built with
ghc-6.12 on hackage, so it should work for you.
> gang at gang-laptop:~$ ghc-pkg list
> /var/lib/ghc-6.12.1/package.conf.d
> directory-1.0.1.0
> /home/gang/.ghc/i386-linux-6.12.1/package.conf.d
> directory-1.1.0.0
Unrelated, but that looks like trouble waiting for an opportunity to bite
you.
>
> Thanks
> Gang
More information about the Haskell-Cafe
mailing list