[Haskell-cafe] Custom QuickCheck Gens without custom shrinks
Niklas Hambüchen
mail at nh2.me
Thu Aug 16 02:11:33 CEST 2012
Oh, this is silly. Of course it is:
forAllShrink linesGen shrink ...
On 15/08/12 20:35, Niklas Hambüchen wrote:
> I wrote this Gen to generate lines of texts without \NUL and \n:
>
> fullLinesProp = forAll linesGen ...
>
> linesGen = listOf . listOf $ arbitrary `suchThat` (`notElem`
> ['\NUL', '\n'])
> -- alternatively:
> linesGen = arbitrary `suchThat` (all (all (`notElem` ['\NUL', '\n'])))
>
> However, I just realized that QuickCheck disables shrinking when I use
> this instead of (linesGen = arbitrary :: Gen [String]).
>
> Why is that? Is there a way to get what I want + shrinking without
> defining a custom shrink (e.g. forAllShrink)?
>
> Thanks
More information about the Haskell-Cafe
mailing list