[Haskell-cafe] QuickChecking IO
Twan van Laarhoven
twanvl at gmail.com
Thu May 25 11:28:46 EDT 2006
Mike Gunter wrote:
> I'd like to use QuickCheck on IO code. For instance, I'd like to
> check a property of type String -> IO Bool.
> Using unsafePerformIO seems straightforward (though I haven't written
> the code, so I may be wrong about that) and it might be possible to
> make a solution involving unsafeInterleaveIO work. Short of rewriting
> QuickCheck, is there any way to check IO code "safely"?
To use QuickCheck on IO you would need an instance of Arbitrary that can
generate arbitrary states of the world :) If you ignore that you could,
for example, make tests that depends on some files existing outside the
program. To me that sounds like a bad idea, or at least outside the
realm of QuickCheck.
More information about the Haskell-Cafe