I would like to write a SmallCheck property that uses IO, but I can't figure out how I am supposed to do it. Specifically, the goal is to write a property that is an instance of Testable IO Bool
so that I can feed it into smallCheck
(or testProperty
in test-framework
). Unfortunately, the best I can come up with is the following:
smallCheck 5 (\(x :: Int) → return True :: IO Bool)
This doesn't work because it is an instance of Testable IO (IO Bool)
rather than Testable IO Bool
, but I can't figure out how to rewrite it so that it works.
Any help would be appreciated.