@@ -15,7 +15,13 @@ import Test.QuickCheck.Arbitrary.Generic
15data Unit = Unit
15data Unit = Unit
16 deriving (Eq, Show, Generic)
16 deriving (Eq, Show, Generic)
17 deriving anyclass NFData
17 deriving anyclass NFData
18+#if MIN_VERSION_QuickCheck(2, 14, 0)
18 deriving Arbitrary via (GenericArbitrary Unit)
19 deriving Arbitrary via (GenericArbitrary Unit)
21+instance Arbitrary Unit where
22+ arbitrary = genericArbitrary
23+ shrink = genericShrink
20prop_unitTotal :: Unit -> Property
26prop_unitTotal :: Unit -> Property
21prop_unitTotal = total
27prop_unitTotal = total
@@ -23,7 +29,13 @@ prop_unitTotal = total
23data Single = Single Int
29data Single = Single Int
24 deriving (Eq, Show, Generic)
30 deriving (Eq, Show, Generic)
25 deriving anyclass NFData
31 deriving anyclass NFData
32+#if MIN_VERSION_QuickCheck(2, 14, 0)
26 deriving Arbitrary via (GenericArbitrary Single)
33 deriving Arbitrary via (GenericArbitrary Single)
35+instance Arbitrary Single where
36+ arbitrary = genericArbitrary
37+ shrink = genericShrink
28prop_singleTotal :: Single -> Property
40prop_singleTotal :: Single -> Property
29prop_singleTotal = total
41prop_singleTotal = total
@@ -31,7 +43,13 @@ prop_singleTotal = total
31data Multiple = M1 | M2 | M3 Int
43data Multiple = M1 | M2 | M3 Int
32 deriving (Eq, Show, Generic)
44 deriving (Eq, Show, Generic)
33 deriving anyclass NFData
45 deriving anyclass NFData
46+#if MIN_VERSION_QuickCheck(2, 14, 0)
34 deriving Arbitrary via (GenericArbitrary Multiple)
47 deriving Arbitrary via (GenericArbitrary Multiple)
49+instance Arbitrary Multiple where
50+ arbitrary = genericArbitrary
51+ shrink = genericShrink
36prop_multipleTotal :: Multiple -> Property
54prop_multipleTotal :: Multiple -> Property
37prop_multipleTotal = total
55prop_multipleTotal = total
@@ -42,7 +60,13 @@ data Rec = Rec
42 , multiple :: Multiple
60 , multiple :: Multiple
43 } deriving (Eq, Show, Generic)
61 } deriving (Eq, Show, Generic)
44 deriving anyclass NFData
62 deriving anyclass NFData
63+#if MIN_VERSION_QuickCheck(2, 14, 0)
45− deriving Arbitrary via (GenericArbitrary Rec)
64+ deriving Arbitrary via (GenericArbitrary Rec)
66+instance Arbitrary Rec where
67+ arbitrary = genericArbitrary
68+ shrink = genericShrink
47prop_recTotal :: Rec -> Property
71prop_recTotal :: Rec -> Property
48prop_recTotal = total
72prop_recTotal = total
@@ -53,7 +77,13 @@ data Expr
53 | Mul Expr Expr
77 | Mul Expr Expr
54 deriving (Eq, Show, Generic)
78 deriving (Eq, Show, Generic)
55 deriving anyclass NFData
79 deriving anyclass NFData
80+#if MIN_VERSION_QuickCheck(2, 14, 0)
56 deriving Arbitrary via (GenericArbitrary Expr)
81 deriving Arbitrary via (GenericArbitrary Expr)
83+instance Arbitrary Expr where
84+ arbitrary = genericArbitrary
85+ shrink = genericShrink
58prop_exprTotal :: Expr -> Property
88prop_exprTotal :: Expr -> Property
59prop_exprTotal = total
89prop_exprTotal = total
@@ -67,7 +97,13 @@ data Recursive
67 | R5 Recursive String
97 | R5 Recursive String
68 deriving (Eq, Show, Generic)
98 deriving (Eq, Show, Generic)
69 deriving anyclass NFData
99 deriving anyclass NFData
100+#if MIN_VERSION_QuickCheck(2, 14, 0)
70 deriving Arbitrary via (GenericArbitrary Recursive)
101 deriving Arbitrary via (GenericArbitrary Recursive)
103+instance Arbitrary Recursive where
104+ arbitrary = genericArbitrary
105+ shrink = genericShrink
72prop_recursiveTotal :: Recursive -> Property
108prop_recursiveTotal :: Recursive -> Property
73prop_recursiveTotal = total
109prop_recursiveTotal = total
@@ -77,7 +113,13 @@ data DeepRecursive
78 deriving (Eq, Show, Generic)
114 deriving (Eq, Show, Generic)
79 deriving anyclass NFData
115 deriving anyclass NFData
116+#if MIN_VERSION_QuickCheck(2, 14, 0)
80 deriving Arbitrary via (GenericArbitrary DeepRecursive)
117 deriving Arbitrary via (GenericArbitrary DeepRecursive)
119+instance Arbitrary DeepRecursive where
120+ arbitrary = genericArbitrary
121+ shrink = genericShrink
82prop_deepRecursiveTotal :: DeepRecursive -> Property
124prop_deepRecursiveTotal :: DeepRecursive -> Property
83prop_deepRecursiveTotal = total
125prop_deepRecursiveTotal = total