From aed973627cf67686268f8947a62ac4f789260f5b Mon Sep 17 00:00:00 2001 From: Tom Ellis Date: Wed, 10 Sep 2025 20:06:56 +0100 Subject: [PATCH] eta expand so it works on GHC 9.0; test on GHC 9.0.2 where there is simplified subsumption --- .github/workflows/haskell-ci.yml | 5 +++++ hedgehog-corpus/hedgehog-corpus.cabal | 1 + hedgehog-dieharder/hedgehog-dieharder.cabal | 1 + hedgehog-example/hedgehog-example.cabal | 1 + hedgehog-quickcheck/hedgehog-quickcheck.cabal | 1 + hedgehog-test-laws/hedgehog-test-laws.cabal | 1 + hedgehog/hedgehog.cabal | 1 + hedgehog/src/Hedgehog/Internal/Gen.hs | 6 +++--- 8 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.github/workflows/haskell-ci.yml b/.github/workflows/haskell-ci.yml index b0a104c1..d6d993f4 100644 --- a/.github/workflows/haskell-ci.yml +++ b/.github/workflows/haskell-ci.yml @@ -58,6 +58,11 @@ jobs: compilerVersion: 9.2.7 setup-method: ghcup allow-failure: false + - compiler: ghc-9.0.2 + compilerKind: ghc + compilerVersion: 9.0.2 + setup-method: ghcup + allow-failure: false - compiler: ghc-8.10.1 compilerKind: ghc compilerVersion: 8.10.1 diff --git a/hedgehog-corpus/hedgehog-corpus.cabal b/hedgehog-corpus/hedgehog-corpus.cabal index 2be6f6c7..e7bd4a5e 100644 --- a/hedgehog-corpus/hedgehog-corpus.cabal +++ b/hedgehog-corpus/hedgehog-corpus.cabal @@ -33,6 +33,7 @@ tested-with: , GHC == 8.6.5 , GHC == 8.8.3 , GHC == 8.10.1 + , GHC == 9.0.2 , GHC == 9.2.7 , GHC == 9.4.8 , GHC == 9.6.6 diff --git a/hedgehog-dieharder/hedgehog-dieharder.cabal b/hedgehog-dieharder/hedgehog-dieharder.cabal index ba7e0446..e365bd40 100644 --- a/hedgehog-dieharder/hedgehog-dieharder.cabal +++ b/hedgehog-dieharder/hedgehog-dieharder.cabal @@ -30,6 +30,7 @@ tested-with: , GHC == 8.6.5 , GHC == 8.8.3 , GHC == 8.10.1 + , GHC == 9.0.2 , GHC == 9.2.7 , GHC == 9.4.8 , GHC == 9.6.6 diff --git a/hedgehog-example/hedgehog-example.cabal b/hedgehog-example/hedgehog-example.cabal index b2f2c8d2..71e1e149 100644 --- a/hedgehog-example/hedgehog-example.cabal +++ b/hedgehog-example/hedgehog-example.cabal @@ -28,6 +28,7 @@ tested-with: , GHC == 8.6.5 , GHC == 8.8.3 , GHC == 8.10.1 + , GHC == 9.0.2 , GHC == 9.2.7 , GHC == 9.4.8 , GHC == 9.6.6 diff --git a/hedgehog-quickcheck/hedgehog-quickcheck.cabal b/hedgehog-quickcheck/hedgehog-quickcheck.cabal index 22ac73d8..68495039 100644 --- a/hedgehog-quickcheck/hedgehog-quickcheck.cabal +++ b/hedgehog-quickcheck/hedgehog-quickcheck.cabal @@ -38,6 +38,7 @@ tested-with: , GHC == 8.6.5 , GHC == 8.8.3 , GHC == 8.10.1 + , GHC == 9.0.2 , GHC == 9.2.7 , GHC == 9.4.8 , GHC == 9.6.6 diff --git a/hedgehog-test-laws/hedgehog-test-laws.cabal b/hedgehog-test-laws/hedgehog-test-laws.cabal index ae7425df..3ed1a6f5 100644 --- a/hedgehog-test-laws/hedgehog-test-laws.cabal +++ b/hedgehog-test-laws/hedgehog-test-laws.cabal @@ -32,6 +32,7 @@ tested-with: , GHC == 8.6.5 , GHC == 8.8.3 , GHC == 8.10.1 + , GHC == 9.0.2 , GHC == 9.2.7 , GHC == 9.4.8 , GHC == 9.6.6 diff --git a/hedgehog/hedgehog.cabal b/hedgehog/hedgehog.cabal index 61d20318..f2b8f8ae 100644 --- a/hedgehog/hedgehog.cabal +++ b/hedgehog/hedgehog.cabal @@ -38,6 +38,7 @@ tested-with: , GHC == 8.6.5 , GHC == 8.8.3 , GHC == 8.10.1 + , GHC == 9.0.2 , GHC == 9.2.7 , GHC == 9.4.8 , GHC == 9.6.6 diff --git a/hedgehog/src/Hedgehog/Internal/Gen.hs b/hedgehog/src/Hedgehog/Internal/Gen.hs index 0168c037..205e5dae 100644 --- a/hedgehog/src/Hedgehog/Internal/Gen.hs +++ b/hedgehog/src/Hedgehog/Internal/Gen.hs @@ -1208,7 +1208,7 @@ element fa = withFrozenCallStack $ case toList fa of -- /The input list must be non-empty./ -- element_ :: (HasCallStack, MonadGen m) => [a] -> m a -element_ = withFrozenCallStack . \case +element_ l = withFrozenCallStack $ case l of [] -> error "Hedgehog.Gen.element: used with empty list" xs -> do @@ -1222,7 +1222,7 @@ element_ = withFrozenCallStack . \case -- /The input list must be non-empty./ -- choice :: (HasCallStack, MonadGen m) => [m a] -> m a -choice = withFrozenCallStack . \case +choice l = withFrozenCallStack $ case l of [] -> error "Hedgehog.Gen.choice: used with empty list" xs -> do @@ -1237,7 +1237,7 @@ choice = withFrozenCallStack . \case -- /The input list must be non-empty./ -- frequency :: (HasCallStack, MonadGen m) => [(Int, m a)] -> m a -frequency = withFrozenCallStack . \case +frequency l = withFrozenCallStack $ case l of [] -> error "Hedgehog.Gen.frequency: used with empty list" xs0 -> do