4 ms·
I know there is a contingent of people who feel this way, but to be honest I've never heard a compelling argument out of them other than the vague complaints ab
by KirinDave 9y ago
I know there is a contingent of people who feel this way, but to be honest I've never heard a compelling argument out of them other than the vague complaints about type classes.
You can certainly do things the way Hedgehog does and it's great. I think many of the nice parts of Hedgehog are not incompatible with quickcheck.
- pseudonom- 9y agoOne semi-real problem with `Arbitrary` is that quickcheck itself can only define a fairly small set of instances since it doesn't want to incur a dependency on all of Hackage. Likewise, other packages are unlikely to bring in quickcheck as a dependency just to define the instance. This means these instances must be defined in standalone packages where they're necessarily orphans. The cultural prohibition against orphans means there aren't as many of these orphan instances packages as you'd like so you can end up redefining instances in every consumer project. With the Hedgehog approach, there's no problem whatsoever with creating separate packages for these instances.