QuickCheck breaks with ghc-8.8.1 new Monad / MonadFail handling of fail
The new Monad instance does not have the method fail. That has been moved exclusively to MonadFail in ghc-8.8.1.
I tried building QuickCheck with the alpha release of the ghc-8.8.1 and the current version results in the following error:
Configuring QuickCheck-2.13.1...
Preprocessing library for QuickCheck-2.13.1..
Building library for QuickCheck-2.13.1..
[ 1 of 16] Compiling Test.QuickCheck.Exception ( Test/QuickCheck/Exception.hs, .stack-work/dist/x86_64-linux/Cabal-2.5.0.0/build/Test/QuickCheck/Exception.o )
[ 2 of 16] Compiling Test.QuickCheck.Random ( Test/QuickCheck/Random.hs, .stack-work/dist/x86_64-linux/Cabal-2.5.0.0/build/Test/QuickCheck/Random.o )
[ 3 of 16] Compiling Test.QuickCheck.Gen ( Test/QuickCheck/Gen.hs, .stack-work/dist/x86_64-linux/Cabal-2.5.0.0/build/Test/QuickCheck/Gen.o )
[ 4 of 16] Compiling Test.QuickCheck.Gen.Unsafe ( Test/QuickCheck/Gen/Unsafe.hs, .stack-work/dist/x86_64-linux/Cabal-2.5.0.0/build/Test/QuickCheck/Gen/Unsafe.o )
[ 5 of 16] Compiling Test.QuickCheck.Arbitrary ( Test/QuickCheck/Arbitrary.hs, .stack-work/dist/x86_64-linux/Cabal-2.5.0.0/build/Test/QuickCheck/Arbitrary.o )
[ 6 of 16] Compiling Test.QuickCheck.Poly ( Test/QuickCheck/Poly.hs, .stack-work/dist/x86_64-linux/Cabal-2.5.0.0/build/Test/QuickCheck/Poly.o )
[ 7 of 16] Compiling Test.QuickCheck.Modifiers ( Test/QuickCheck/Modifiers.hs, .stack-work/dist/x86_64-linux/Cabal-2.5.0.0/build/Test/QuickCheck/Modifiers.o )
[ 8 of 16] Compiling Test.QuickCheck.Function ( Test/QuickCheck/Function.hs, .stack-work/dist/x86_64-linux/Cabal-2.5.0.0/build/Test/QuickCheck/Function.o )
[ 9 of 16] Compiling Test.QuickCheck.Text ( Test/QuickCheck/Text.hs, .stack-work/dist/x86_64-linux/Cabal-2.5.0.0/build/Test/QuickCheck/Text.o )
[10 of 16] Compiling Test.QuickCheck.State ( Test/QuickCheck/State.hs, .stack-work/dist/x86_64-linux/Cabal-2.5.0.0/build/Test/QuickCheck/State.o )
[11 of 16] Compiling Test.QuickCheck.Property ( Test/QuickCheck/Property.hs, .stack-work/dist/x86_64-linux/Cabal-2.5.0.0/build/Test/QuickCheck/Property.o )
[12 of 16] Compiling Test.QuickCheck.Test ( Test/QuickCheck/Test.hs, .stack-work/dist/x86_64-linux/Cabal-2.5.0.0/build/Test/QuickCheck/Test.o )
[13 of 16] Compiling Test.QuickCheck.Monadic ( Test/QuickCheck/Monadic.hs, .stack-work/dist/x86_64-linux/Cabal-2.5.0.0/build/Test/QuickCheck/Monadic.o )
/tmp/stack7255/QuickCheck-2.13.1/Test/QuickCheck/Monadic.hs:126:3: error:
‘fail’ is not a (visible) method of class ‘Monad’
|
126 | fail = fail_
| ^^^^
It should be simple enough to fix with some use of the C pre-processor.
I believe this was fixed by #255, but a new version of QuickCheck hasn't been released with the change.
Ah, I see. Any reason a new version with these changes hasn't been uploaded to Hackage?
this seems to have been fixed in QuickCheck-2.13.2 which successfully installs with ghc 8.8.1 rc1