git.iko.soy/typeable/generic-arbitrary
on master help sign in
.github/workflows/haskell-ci.yml+17−4
since splitsnapshots
unifiedsplit
@@ -1,16 +1,29 @@
1name: Haskell-CI
1name: Haskell-CI
2−on: [push]
2+on: [push, pull_request]
3jobs:
3jobs:
4 linux:
4 linux:
5− name: ${{ matrix.stack-yaml }}
5+ name: GHC-${{ matrix.ghc-version }}
6 runs-on: ubuntu-latest
6 runs-on: ubuntu-latest
7 strategy:
7 strategy:
8 matrix:
8 matrix:
9− stack-yaml: [stack.yaml, lts-18.18.yaml, lts-13.21.yaml]
9+ ghc-version:
10+ - 8.6.5
11+ - 8.10.7
12+ - 9.0.2
13+ - 9.2.4
14+ - 9.4.3
15+ - 9.8.1
10 steps:
16 steps:
11 - uses: actions/checkout@v3
17 - uses: actions/checkout@v3
12 - uses: haskell/actions/setup@v2
18 - uses: haskell/actions/setup@v2
13 with:
19 with:
14 enable-stack: true
20 enable-stack: true
21+ ghc-version: ${{ matrix.ghc-version }}
15 stack-version: 'latest'
22 stack-version: 'latest'
23+ - uses: actions/cache@v3
24+ with:
25+ path: |
26+ ~/.stack
27+ ./.stack-work
28+ key: ${{ matrix.ghc-version }}
16− - run: stack --stack-yaml ${{ matrix.stack-yaml }} --install-ghc test --fast --haddock
29+ - run: stack --stack-yaml ghc-${{ matrix.ghc-version }}.yaml --install-ghc test --fast --haddock
CHANGELOG.md+16
@@ -1,3 +1,19 @@
1+1.0.1.2
2+-------
3+
4+* Fix dependency bounds (including retroactively), and compilation with warnings.
5+
6+1.0.1.1
7+-------
8+
9+* Fix compilation with GHC 9.8.3
10+
11+1.0.1
12+-----
13+
14+* Compillability by GHC-9.2.4
15+* Fix cabal `tested-with` field
16+
11.0.0
171.0.0
2-----
18-----
3
19
generic-arbitrary.cabal+17−13
@@ -1,5 +1,5 @@
1name: generic-arbitrary
1name: generic-arbitrary
2−version: 1.0.0
2+version: 1.0.1.2
3synopsis: Generic implementation for QuickCheck's Arbitrary
3synopsis: Generic implementation for QuickCheck's Arbitrary
4description:
4description:
5 Generic implementations of methods of the 'Arbitrary' class from the
5 Generic implementations of methods of the 'Arbitrary' class from the
@@ -16,9 +16,13 @@ category: Generic
16build-type: Simple
16build-type: Simple
17extra-source-files: CHANGELOG.md
17extra-source-files: CHANGELOG.md
18 , README.md
18 , README.md
19−cabal-version: 1.22
19+cabal-version: 2.0
20−tested-with: GHC == 8.10.7
20+tested-with: GHC == 8.6.5
21+ , GHC == 8.10.7
21− , GHC == 9.0.2
22+ , GHC == 9.0.2
23+ , GHC == 9.2.4
24+ , GHC == 9.4.3
25+ , GHC == 9.8.1
22
26
23source-repository head
27source-repository head
24 type: git
28 type: git
@@ -27,7 +31,7 @@ source-repository head
27library
31library
28 exposed-modules: Test.QuickCheck.Arbitrary.Generic
32 exposed-modules: Test.QuickCheck.Arbitrary.Generic
29 build-depends: base >=4.8 && <5
33 build-depends: base >=4.8 && <5
30− , QuickCheck
34+ , QuickCheck >=2.8
31 hs-source-dirs: src
35 hs-source-dirs: src
32 default-language: Haskell2010
36 default-language: Haskell2010
33 default-extensions: AllowAmbiguousTypes
37 default-extensions: AllowAmbiguousTypes
@@ -55,15 +59,16 @@ test-suite test
55 hs-source-dirs: test
59 hs-source-dirs: test
56 main-is: Test.hs
60 main-is: Test.hs
57 default-language: Haskell2010
61 default-language: Haskell2010
58− build-depends: base >= 4.8 && <5
62+ build-depends: base >=4.12 && <5
59− , QuickCheck
63+ , QuickCheck >=2.10
60 , deepseq
64 , deepseq
61 , generic-arbitrary
65 , generic-arbitrary
62− , tasty
66+ , tasty >=1.4.2 || <1.4.0.1
63− , tasty-discover
67+ , tasty-discover >= 2.0.0
64− , tasty-hunit
68+ , tasty-hunit >= 0.9.2
65 , tasty-quickcheck
69 , tasty-quickcheck
66− other-modules: Aux
70+ other-modules: Auxiliary
71+ , EnumTest
67 , LimitationDemo
72 , LimitationDemo
68 , NoTypecheckTest
73 , NoTypecheckTest
69 , ParametersTest
74 , ParametersTest
@@ -89,9 +94,8 @@ test-suite test
89 , TypeSynonymInstances
94 , TypeSynonymInstances
90 , UndecidableInstances
95 , UndecidableInstances
91 , ViewPatterns
96 , ViewPatterns
92− build-tools: tasty-discover
97+ build-tool-depends: tasty-discover:tasty-discover
93 ghc-options: -Wall
98 ghc-options: -Wall
94 -threaded
99 -threaded
95 -rtsopts
100 -rtsopts
96 "-with-rtsopts=-N -A64m -qb0 -n4m -T -I1"
101 "-with-rtsopts=-N -A64m -qb0 -n4m -T -I1"
97− default-extensions: DeriveGeneric
lts-18.18.yaml → ghc-8.10.7.yamlrenamed

The content is the same.

lts-18.18.yaml.lock → ghc-8.10.7.yaml.lockrenamed

The content is the same.

lts-13.21.yaml → ghc-8.6.5.yamlrenamed

The content is the same.

lts-13.21.yaml.lock → ghc-8.6.5.yaml.lockrenamed

The content is the same.

ghc-9.0.2.yamlnew file+1
@@ -0,0 +1 @@
1+resolver: lts-19.20
ghc-9.0.2.yaml.locknew file+12
@@ -0,0 +1,12 @@
1+# This file was autogenerated by Stack.
2+# You should not edit this file by hand.
3+# For more information, please see the documentation at:
4+# https://docs.haskellstack.org/en/stable/lock_files
5+
6+packages: []
7+snapshots:
8+- completed:
9+ sha256: be747117bed6d462806c883352c3206325b23480825103f5c87884e97e52819a
10+ size: 619173
11+ url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/19/20.yaml
12+ original: lts-19.20
ghc-9.2.4.yamlnew file+1
@@ -0,0 +1 @@
1+resolver: nightly-2022-08-24
ghc-9.2.4.yaml.locknew file+12
@@ -0,0 +1,12 @@
1+# This file was autogenerated by Stack.
2+# You should not edit this file by hand.
3+# For more information, please see the documentation at:
4+# https://docs.haskellstack.org/en/stable/lock_files
5+
6+packages: []
7+snapshots:
8+- completed:
9+ sha256: ff431937a638ebfaa5e6fec13c7ae575f01e02744d6ca5e5b1554f78cb5f88ad
10+ size: 631953
11+ url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/nightly/2022/8/24.yaml
12+ original: nightly-2022-08-24
ghc-9.4.3.yamlnew file+1
@@ -0,0 +1 @@
1+resolver: nightly-2022-12-26
ghc-9.4.3.yaml.locknew file+12
@@ -0,0 +1,12 @@
1+# This file was autogenerated by Stack.
2+# You should not edit this file by hand.
3+# For more information, please see the documentation at:
4+# https://docs.haskellstack.org/en/stable/lock_files
5+
6+packages: []
7+snapshots:
8+- completed:
9+ sha256: bbe432b2abd6d866aa37f65a8129a5f858b7c6eaae9464f8bc2814ce92ac2d15
10+ size: 573163
11+ url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/nightly/2022/12/26.yaml
12+ original: nightly-2022-12-26
ghc-9.8.1.yamlnew file+1
@@ -0,0 +1 @@
1+resolver: nightly-2024-01-12
ghc-9.8.1.yaml.locknew file+12
@@ -0,0 +1,12 @@
1+# This file was autogenerated by Stack.
2+# You should not edit this file by hand.
3+# For more information, please see the documentation at:
4+# https://docs.haskellstack.org/en/stable/lock_files
5+
6+packages: []
7+snapshots:
8+- completed:
9+ sha256: 8f06e87750f95bc8620644ea22344ad023c3c5aa6efa854747aa70093898fd79
10+ size: 556465
11+ url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/nightly/2024/1/12.yaml
12+ original: nightly-2024-01-12
src/Test/QuickCheck/Arbitrary/Generic.hs+10−2
@@ -1,3 +1,10 @@
1+#if __GLASGOW_HASKELL__ >= 806
2+{-# OPTIONS_GHC -Wno-star-is-type #-}
3+#endif
4+#if __GLASGOW_HASKELL__ >= 800
5+{-# OPTIONS_GHC -Wno-unticked-promoted-constructors #-}
6+#endif
7+
1{-|
8{-|
2
9
3This module is a generic implementation of the 'arbitrary' method. Example
10This module is a generic implementation of the 'arbitrary' method. Example
@@ -27,7 +34,7 @@ data Foo = Foo
27The generated 'arbitrary' method is equivalent to
34The generated 'arbitrary' method is equivalent to
28
35
29@
36@
30−Foo <$> arbitrary <*> arbitrary
37+Foo '<$>' arbitrary '<*>' arbitrary
31@.
38@.
32
39
33It can also handle a recursive types problem. Assuming a type
40It can also handle a recursive types problem. Assuming a type
@@ -146,13 +153,14 @@ module Test.QuickCheck.Arbitrary.Generic
146 ) where
153 ) where
147
154
148import Control.Applicative
155import Control.Applicative
149−import Data.Coerce (coerce)
150import Data.Proxy
156import Data.Proxy
151import Data.Type.Bool
157import Data.Type.Bool
152import GHC.Generics as G
158import GHC.Generics as G
153import GHC.TypeLits
159import GHC.TypeLits
160+import Prelude
154import Test.QuickCheck as QC
161import Test.QuickCheck as QC
155#if MIN_VERSION_QuickCheck(2, 14, 0)
162#if MIN_VERSION_QuickCheck(2, 14, 0)
163+import Data.Coerce (coerce)
156import Test.QuickCheck.Arbitrary (GSubterms, RecursivelyShrink)
164import Test.QuickCheck.Arbitrary (GSubterms, RecursivelyShrink)
157
165
158
166
test/Aux.hs → test/Auxiliary.hsrenamed+1−1
@@ -1,4 +1,4 @@
1−module Aux where
1+module Auxiliary where
2
2
3import Control.Exception
3import Control.Exception
4import Test.QuickCheck
4import Test.QuickCheck
test/EnumTest.hsnew file+24
@@ -0,0 +1,24 @@
1+#if __GLASGOW_HASKELL__ >= 806 && __GLASGOW_HASKELL__ <= 900
2+{-# OPTIONS_GHC -fconstraint-solver-iterations=5 #-}
3+#elif __GLASGOW_HASKELL__ >= 902
4+{-# OPTIONS_GHC -fconstraint-solver-iterations=6 #-}
5+#endif
6+
7+
8+
9+module EnumTest where
10+
11+import Control.DeepSeq
12+import GHC.Generics
13+import Test.QuickCheck
14+import Test.QuickCheck.Arbitrary.Generic
15+
16+data Country = PL | GB | RU | RO | CZ | HR | SK | DE | NL | ES | BR
17+ deriving (Generic, NFData, Show)
18+
19+instance Arbitrary Country where
20+ arbitrary = genericArbitrary
21+ shrink = genericShrink
22+
23+prop_CountryTest :: Country -> Property
24+prop_CountryTest = total
test/NoTypecheckTest.hs+1−1
@@ -5,7 +5,7 @@
5
5
6module NoTypecheckTest where
6module NoTypecheckTest where
7
7
8−import Aux
8+import Auxiliary
9import GHC.Generics (Generic)
9import GHC.Generics (Generic)
10import Test.QuickCheck
10import Test.QuickCheck
11import Test.QuickCheck.Arbitrary.Generic
11import Test.QuickCheck.Arbitrary.Generic
test/ParametersTest.hs+1−1
@@ -3,7 +3,7 @@
3
3
4module ParametersTest where
4module ParametersTest where
5
5
6−import Aux
6+import Auxiliary
7import Control.DeepSeq
7import Control.DeepSeq
8import GHC.Generics (Generic)
8import GHC.Generics (Generic)
9import Test.QuickCheck
9import Test.QuickCheck
test/RecursiveTest.hs+2−1
@@ -1,13 +1,14 @@
1{-# LANGUAGE DerivingStrategies #-}
1{-# LANGUAGE DerivingStrategies #-}
2{-# LANGUAGE DerivingVia #-}
2{-# LANGUAGE DerivingVia #-}
3{-# LANGUAGE DeriveAnyClass #-}
3{-# LANGUAGE DeriveAnyClass #-}
4+{-# OPTIONS_GHC -fconstraint-solver-iterations=5 #-} -- GHC-9.2.4
4
5
5-- | Testing that our Arbitrary instances do not get stuck and respect the
6-- | Testing that our Arbitrary instances do not get stuck and respect the
6-- `size` parameter while generating.
7-- `size` parameter while generating.
7
8
8module RecursiveTest where
9module RecursiveTest where
9
10
10−import Control.DeepSeq
11+import Control.DeepSeq (NFData)
11import GHC.Generics (Generic)
12import GHC.Generics (Generic)
12import Test.QuickCheck
13import Test.QuickCheck
13import Test.QuickCheck.Arbitrary.Generic
14import Test.QuickCheck.Arbitrary.Generic