Open andrewthad opened 6 years ago
This only shows up when building with older versions of GHC. Try this for example to see the failure:
cabal new-build --constraint='transformers==0.4.0.0` -w ghc-7.4.2
I've fixed up the affected releases (@bgamari, so everything that's now left to do is to update the .cabal
file for the sake of future attoparsec
releases)
Awesome. Thanks!
Unfortunately, these revisions are causing various build failures for me (criterion
example).
Also, these new version bounds are too conservative. Data.Functor.Identity
was introduced in transformers-0.2.0.0
, not 0.4.1.0
. The reason that attoparsec
was failing to build was because it is importing Identity(runIdentity)
, and transformers-0.4.0.0
made the strange decision to not export runIdentity
as a record selector:
$ cabal build
Preprocessing library for attoparsec-0.13.2.2..
Building library for attoparsec-0.13.2.2..
[ 5 of 21] Compiling Data.Attoparsec.Zepto ( Data/Attoparsec/Zepto.hs, dist/build/Data/Attoparsec/Zepto.o )
Data/Attoparsec/Zepto.hs:44:31:
Module
`Data.Functor.Identity'
does not export
`Identity(runIdentity)'
This is why attoparsec
fails to build against that particular version of transformers
. For that reason, transformers-0.4.0.0
was deprecated on Hackage. (All other versions of transformers
between 0.2.0.0
and 0.5.5.0
do export runIdentity
as a record selector.)
If you really want to be sure that attoparsec
never builds against transformers-0.4.0.0
, you should change the version bounds to transformers >= 0.2 && < 0.4 || >=0.4.1 && <0.6
. I don't have the ability to change this myself—can a Hackage trustee please do this?
@RyanGlScott Oh dear... I totally missed that :-/
I've fixed up the version bound as you suggested; would have been easier to turn that soft-blacklist of transformers-0.4 into a hard-blacklist...
Attoparsec uses
Data.Functor.Identity
. Consequently, it should requiretransformers >= 0.4.1.0
.