{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreifvysugiwsld3gawnujda5jgdtxlkdxo5d3qc2xpvgmszlwxtpepi",
    "uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3midchn6wzh52"
  },
  "path": "/t/why-not-use-smallcheck/13860#post_1",
  "publishedAt": "2026-03-30T18:46:05.000Z",
  "site": "https://discourse.haskell.org",
  "tags": [
    "smallcheck package",
    "falsify"
  ],
  "textContent": "On the smallcheck package there is a disclaimer:\n\n> **As of 2023, this library is largely obsolete: arbitrary test generators with shrinking such as falsify offer much better user experience.**\n\nI don’t understand why that is. As great `falsify` is, I find it annoying to write generators again and again. Maybe I’m not using generics and deriving via enough, I find it a bit hard to wrap my head around in that library.\n\nBut I find the principles of smallcheck so great: By construction, the smallest test case will be tested first. No worries about shrinking. Series of test values can be implemented without boilerplate, with generics.\n\nSo why would someone claim that smallcheck has worse user experience? What’s wrong with it?",
  "title": "Why not use smallcheck?"
}