It would be nice if SmartCheck supported custom generators, like QuickCheck does with forAll. For example, I want to use SmartCheck to test an interpreter I'm working on, but I need to be able generate expressions of a given type. I can probably work around it with the standard newtype trick though, for now.