SmallCheck
SmallCheck: A deterministic Haskell tester for finite, depth-bounded property checks. Ranked #25 of 27 in Property-Based Testing Tools by our editors (6.9/10); pricing: Free plan; best for haskell teams testing finite domains.
At a glance
- Editor score6.9 / 10
- PricingFree plan
- Best forHaskell teams testing finite domains
- Free planYes
- Paid fromFree
- Supported languagesHaskell
- Facts checked20 Sep 2026
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
Our verdict on SmallCheck
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.
Your product? Our editors can test SmallCheck in depth and publish a review, labelled as paid · from $149/mo →
SmallCheck pricing
SmallCheck fact sheet
| Free plan | Yes |
|---|---|
| Paid from | Free |
| Supported languages | Haskell |
| Test runner support | Test.SmallCheck.Drivers |
| Failing-case shrinking | No |
| Stateful testing | Not verified |
| Reproducible failures | Yes |
| Cases per run | Not verified |
| Support | Docs |
| Pricing | Free plan |
| Website | hackage.haskell.org |
| Facts checked | 20 Sep 2026 |
Alternatives to SmallCheck
- fast-checkA deep, runner-agnostic testing library for JavaScript and TypeScript teams.9.4
- HypothesisA focused Python library for generated inputs, shrinking, and stateful tests.9.3
- ProptestA focused Rust framework for generated inputs, shrinking, replay, and stateful tests.9.1
See all SmallCheck alternatives →
Used SmallCheck? Be the first to review it
The editor score above is our own research. What this page doesn't have yet is a reader's view — what you used SmallCheck for, what worked and what didn't. No stars are seeded and no review is paid for; an editor reads every one before it appears.
Write a reviewTwo minutes · verified accounts only · read by an editor before it appears
Featured on iTechGuides
SmallCheck is listed in our Property-Based Testing Tools directory. Add the badge to your site — it links back to this page.
<a href="https://www.itechguides.com/products/smallcheck/"><img src="https://www.itechguides.com/best/badge/smallcheck.svg" alt="Featured on iTechGuides" width="230" height="46"></a>
Reviewed by iTechGuides Editors · Editorial team · Updated Oct 2026
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



