I have a working code of this but for that I have to reimplement Arbitrary and Testable typeclasses which I don't want to do. I thought it might be possible to use parts of quickcheck without actually changing its code but still I am unable to find a suitable solution.
* Stephen Tetley <stephen.tetley@gmail.com> [2013-01-13 08:49:08+0000]
This can be done with relatively simple type class hackery. In fact,> In general you can't do this whether you use pats of QuickCheck or not
> - `randomEvalute` would need to inspect the supplied function to see
> how many input parameters it has so it can list them, but there is no
> such introspection in Haskell.
QuickCheck already does that in order to generate arguments and print
them in case of failure.
Roman