I have a set of simple demo programs which encode/decode strings, and want to generate some quickCheck tests for them, but to limit the tests to printable strings only.
Currently QuickCheck has a PrintableString type, which also has an instance of arbitrary, which means that you can readily generate arbitrary strings with:
arbitraryPrintableString :: Gen String
arbitraryPrintableString = getPrintableString <$> arbitrary