Skip to content

Tests failing to build due to QuickCheck introducing Arbitrary instance for Newline/NewlineMode

As seen here:

[ 5 of 16] Compiling Tests.QuickCheckUtils ( tests/Tests/QuickCheckUtils.hs, /builds/ghc/head.hackage/ci/run/test-all/dist-newstyle/build/x86_64-linux/ghc-9.4.5/text-2.0.1/t/tests/build/tests/tests-tmp/Tests/QuickCheckUtils.o, /builds/ghc/head.hackage/ci/run/test-all/dist-newstyle/build/x86_64-linux/ghc-9.4.5/text-2.0.1/t/tests/build/tests/tests-tmp/Tests/QuickCheckUtils.dyn_o )
tests/Tests/QuickCheckUtils.hs:216:10: error:
    Duplicate instance declarations:
      instance Arbitrary IO.Newline
        -- Defined at tests/Tests/QuickCheckUtils.hs:216:10
      instance Arbitrary IO.Newline
        -- Defined in ‘Test.QuickCheck.Arbitrary’
    |
216 | instance Arbitrary IO.Newline where
    |          ^^^^^^^^^^^^^^^^^^^^
tests/Tests/QuickCheckUtils.hs:219:10: error:
    Duplicate instance declarations:
      instance Arbitrary IO.NewlineMode
        -- Defined at tests/Tests/QuickCheckUtils.hs:219:10
      instance Arbitrary IO.NewlineMode
        -- Defined in ‘Test.QuickCheck.Arbitrary’
    |
219 | instance Arbitrary IO.NewlineMode where
    |          ^^^^^^^^^^^^^^^^^^^^^^^^

Unfortunately, I didn't notice this until recently, since the CI test jobs are allowed to fail.