SmallCheck review
A deterministic Haskell tester for finite, depth-bounded property checks.
Reviewed by iTechGuides Editors · Editorial team · Updated Oct 2026
SmallCheck is an open-source Haskell library for property-based testing. It generates finite, completely defined values from types and checks program properties exhaustively up to a specified depth. That makes it a focused choice for Haskell developers who prefer deterministic enumeration over random sampling and want reproducible failures when validating finite domains.
Its main strength is the testing model. SmallCheck progressively increases the depth of generated data, reports counterexamples, and provides progress and test-result reporting. Automatic type-based generation reduces the need to define every test value manually, while exposed Series modules support custom test series. The package also includes drivers for running tests in IO and other monads, extending the approach beyond pure property checks. For teams that value exhaustive coverage within a defined depth, this combination is more informative than relying only on randomly selected cases.
SmallCheck is deliberately narrower than a general-purpose, multi-language testing platform. It supports Haskell, and its lack of shrinking means failing examples are not automatically reduced to smaller cases. The README describes the project as largely obsolete as of 2023, which is an important consideration for teams choosing tools for new or long-lived test infrastructure. Pick SmallCheck when deterministic, depth-bounded enumeration and type-driven generation match the testing need. Choose an alternative when shrinking, broader language support, or a more actively positioned project is a priority.
SmallCheck pros and cons
- Where it wins
- Exhaustively enumerates finite values to a specified depth
- Generates test cases automatically from types
- Reports deterministic failures with counterexamples
- Where it doesn't
- No shrinking support for reducing failing cases
- Focused on Haskell rather than multiple languages
- README describes the project as largely obsolete as of 2023
SmallCheck fact sheet, pricing and score →
Advertiser disclosure: iTechGuides is reader-supported. Vendors can pay for top positions in our rankings and for a place on other products' pages, and we may earn a commission when you click some links. Bought places stand at the number bought; this page and our disclosure say so. Paying vendors may get a fuller, more detailed review from our editors, and that review can change their score. How we rank.
Last updated · How we research and update
