Question

I'm trying to install fay but src compiling fails with

$ cabal install fay
...
Preprocessing executable 'fay' for fay-0.10.1.0...
[ 1 of 14] Compiling Data.List.Extra  ( src/Data/List/Extra.hs, dist/build/fay/fay- tmp/Data/List/Extra.o )
[ 2 of 14] Compiling System.Process.Extra ( src/System/Process/Extra.hs, dist/build/fay/fay-tmp/System/Process/Extra.o )    
...
[13 of 14] Compiling Language.Fay     ( src/Language/Fay.hs, dist/build/fay/fay-tmp/Language/Fay.o )
[14 of 14] Compiling Main             ( src/Main.hs, dist/build/fay/fay-tmp/Main.o )

src/Main.hs:89:55:
Couldn't match expected type `Either ParseError (Maybe String)'
            with actual type `Maybe b0'
Expected type: b0 -> Either ParseError (Maybe String)
  Actual type: b0 -> Maybe b0
In the first argument of `(.)', namely `Just'
In the first argument of `reader', namely `(Just . Just)'

src/Main.hs:96:35:
Couldn't match expected type `Either ParseError a0'
            with actual type `Maybe b0'
Expected type: b0 -> Either ParseError a0
  Actual type: b0 -> Maybe b0
In the first argument of `(.)', namely `Just'
In the first argument of `reader', namely
  `(Just . wordsBy (== ','))'
Failed to install fay-0.10.1.0
cabal: Error: some packages failed to install:
fay-0.10.1.0 failed during the building phase. The exception was:
ExitFailure 1

I don't know is this my mistake or a package problem.

I'm using: arch linux, ghc-7.4.2, cabal-1.16.0.3

Was it helpful?

Solution

It is definitely a package problem as the dependencies were not specified tightly enough. If a package follows the Package Versioning Policy, if you can satisfy the dependencies, the package should build.

Looking at the fay package description I notice that hardly any dependency has an lower or upper bound. So basically, you’ll have to experiment.

Looking at the code I see that the reader mentioned in the error is Options.Applicative.Builder.reader. This function has changed the type signature between 0.4.3 and 0.5.0, so try to downgrade optparse-applicative by passing --constraint "optparse-applicative < 0.5" to cabal install.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top