-      Trustworthy wraps  in . This may look like a dirty hack, but this building block allows us to implement most of QuickCheck's functionality without resorting to IO again. invokes  via '. It is useful in connection with the  family of functions.SafeImplication. Cf. .Equality test. Cf. .Conjunction. Cf. .Disjunction. Cf. . "Nondeterministic conjunction. Cf.  . Label tests. Cf.  . Shrink counterexamples. Cf.  . +Suppress shrinking of counterexamples. Cf.  . .Universal quantification with shrinking. Cf.  .Universal quantification. Cf. .Adjust testcase sizes. Cf. .Cf. P. Note that in contrast to QuickCheck's function, this one takes an additional  argument.Cf. P. Note that in contrast to QuickCheck's function, this one takes an additional  argument.Cf. P. Note that in contrast to QuickCheck's function, this one takes an additional  argument.Cf. P. Note that in contrast to QuickCheck's function, this one takes an additional  argument.DputStr $ quickCheck (inventQCGen ()) (\x -> length (x :: [()]) < 10)7*** Failed! Falsifiable (after 18 tests and 3 shrinks):.[(),(),(),(),(),(),(),(),(),(),(),(),(),(),()]! ! "# $%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     ! "# $%&'     !"#$%&'()*+,-./012324252627289:9;9<9=9>9?9@9A9B9C9D9D9E9F9G9H9I9J9K9L9M9N9O9P9Q9R9S9TUVUWUXUYUYZ[Z\Z\Z]Z^Z^Z_Z`ZaZbZcZdZeZfZfZgZhZhZiZjZjZkZlZlZmZnZnZoZpZpZqZqZrZrZsZtZuvwvxvyvzv{v|v}v~vvvvvvvvvvvvvvvvvvvvvQuickCheck-safe-0.1.0.1Test.QuickCheck.Safe.TrustedTest.QuickCheck.Safe quickCheckTest.QuickCheck==>===.&&..||.&.label shrinking noShrinking forAllShrinkforAllmapSizequickCheckWithResultquickCheckResultquickCheckWithQuickCheck-2.8.1Test.QuickCheck.Exception AnExceptionTest.QuickCheck.RandomQCGen pureEvaluate inventQCGen STestable.&. tryEvaluatebaseGHC.IOunsafePerformIOnewQCGenSResultSFailsLabels sExceptionsSmallerSDiscardSOk SProperty MkSProperty unSProperty sProperty labelSResultmapSResultLabels$fSTestable(->)$fSTestableBool$fSTestableGen$fSTestableSPropertyTest.QuickCheck.AllverboseCheckAll quickCheckAllforAllProperties monomorphicpolyVerboseCheckpolyQuickCheckTest.QuickCheck.TestverboseCheckWithResultverboseCheckResultverboseCheckWith verboseCheckstdArgschattymaxSizemaxDiscardRatio maxSuccessreplayArgsoutputlabelsnumTestsSuccessGaveUp theExceptionreasonusedSizeusedSeednumShrinkFinalnumShrinkTries numShrinksFailureNoExpectedFailureInsufficientCoverageResultTest.QuickCheck.Property whenFail'whenFail ioPropertyDiscardTest.QuickCheck.ModifiersgetBlindBlindgetFixedFixed getOrderedOrdered OrderedList getNonEmptyNonEmpty NonEmptyList getPositivePositive getNonZeroNonZerogetNonNegative NonNegativegetLargeLargegetSmallSmall getShrink2Shrink2Smart Shrinking shrinkState shrinkInit ShrinkStateTest.QuickCheck.Arbitrary infiniteList orderedListvectorcoarbitraryEnumcoarbitraryShowcoarbitraryRealcoarbitraryIntegral><genericCoarbitraryshrinkRealFracshrinkRealFracToIntegershrinkIntegral shrinkNothingarbitrarySizedBoundedIntegralarbitraryBoundedEnumarbitraryBoundedRandomarbitraryBoundedIntegralarbitrarySizedFractionalarbitrarySizedNaturalarbitrarySizedIntegral shrinkListsubtermsrecursivelyShrink genericShrinkshrink arbitrary Arbitrary coarbitrary CoArbitraryTest.QuickCheck.GeninfiniteListOfvectorOflistOf1listOfgrowingElementsshuffle sublistOfelements frequencyoneof suchThatMaybesuchThatsamplesample'generatechoosescaleresizesizedvariantGendiscard