@@ -153,8 +153,8 @@ instance (Ord a, HasSpec a) => HasSpec (Set a) where
153153 size <- fromInteger <$> genFromSpecT szSpec'
154154 let additions = Set. fromList $ take (size - Set. size must) choices
155155 pure (Set. union must additions)
156- genFromTypeSpec (SetSpec must elemS szSpec) = do
157- let szSpec' = szSpec <> geqSpec (sizeOf must) <> maxSpec (cardinality elemS)
156+ genFromTypeSpec (SetSpec must (simplifySpec -> elemS) szSpec) = do
157+ let szSpec' = szSpec <> geqSpec (sizeOf must) <> maxSpec cardinalityElem
158158 chosenSize <-
159159 explain " Choose a size for the Set to be generated" $
160160 genFromSpecT szSpec'
@@ -176,7 +176,9 @@ instance (Ord a, HasSpec a) => HasSpec (Set a) where
176176 GT -> go 100 targetSize must
177177 EQ -> go 100 targetSize must
178178 where
179- theMostWeCanExpect = maxFromSpec 0 (cardinality (simplifySpec elemS))
179+ cardinalityElem = cardinality elemS
180+ theMostWeCanExpect = maxFromSpec 0 cardinalityElem
181+ genElem = genFromSpecT elemS
180182 go _ n s | n <= 0 = pure s
181183 go tries n s = do
182184 e <-
@@ -190,7 +192,7 @@ instance (Ord a, HasSpec a) => HasSpec (Set a) where
190192 ]
191193 )
192194 $ withMode Strict
193- $ suchThatWithTryT tries (genFromSpecT elemS) (`Set.notMember` s)
195+ $ suchThatWithTryT tries genElem (`Set.notMember` s)
194196
195197 go tries (n - 1 ) (Set. insert e s)
196198
0 commit comments