quickcheck icon indicating copy to clipboard operation
quickcheck copied to clipboard

QuickCheck breaks with ghc-8.8.1 new Monad / MonadFail handling of fail

Open recursion-ninja opened this issue 6 years ago • 3 comments

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.

recursion-ninja avatar May 31 '19 01:05 recursion-ninja

I believe this was fixed by #255, but a new version of QuickCheck hasn't been released with the change.

spl avatar May 31 '19 06:05 spl

Ah, I see. Any reason a new version with these changes hasn't been uploaded to Hackage?

recursion-ninja avatar May 31 '19 09:05 recursion-ninja

this seems to have been fixed in QuickCheck-2.13.2 which successfully installs with ghc 8.8.1 rc1

GeorgeCo avatar Jul 23 '19 12:07 GeorgeCo