SmartCheck
SmartCheck copied to clipboard
Shrinking base types
Add a way to optionally shrink base types.
One way to do this would be to define a "shrink-like" class, and the user can define instances for types they want to shrink. Then during the reduction phase, it will additionally shrink according to the definition. I can't use QC's shrink directly, since shrink is defined by default for base types.
Note that simply using a newtype won't help, since base types inside of a new or data type isn't touched.