{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreih6w2u7kpz4jvltygw6ewn7g7s6no2xdpdkdugxtrsug6qj4e7fjy",
    "uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3miffvqw366k2"
  },
  "path": "/t/why-not-use-smallcheck/13860#post_13",
  "publishedAt": "2026-03-31T19:47:24.000Z",
  "site": "https://discourse.haskell.org",
  "textContent": "turion:\n\n> Not wanting to write a shrinker _lolol_ but right, if the downside is that I have to put more effort into the generator, I can see the point.\n\nRealistically `shrink` is already implemented for all basic types and then `genericShrink` gets you 90% there. There are use cases for writing `shrink` manually, but they are usually in areas which are far beyond SmallCheck’s reach anyway.\n\nLeary:\n\n> IMO the big win is getting a genuinely minimal counterexample to your property in cases where greedy shrinking just isn’t good enough.\n\nCould you give an example?\n\nAmbrose:\n\n> idk I just see “deprecated in favor of” as meaning the two things are actually equivalent fundamentally. not opinion-wise.\n\nPerhaps you are seeing something which is not there?.. SmallCheck description does not contain your quote.",
  "title": "Why not use smallcheck?"
}