{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreiaevdfpo3u5fngurmpiit3kd36msqijongdvrnq2b5j7ev5r5u5iq",
    "uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mnikmmiuz472"
  },
  "path": "/t/monad-of-no-return-the-great-patchening/14207#post_1",
  "publishedAt": "2026-06-04T19:29:31.000Z",
  "site": "https://discourse.haskell.org",
  "tags": [
    "148 packages",
    "proposal acceptance",
    "MR",
    "clc-stackage",
    "issue in the core library committee repository"
  ],
  "textContent": "Hi all!\n\n_tl;dr: I have 148 packages on stackage to patch for compatibility, and I’d like your help!_\n\nI’ve got another update on the Monad of No Return/Monoid of No Mappend proposal.\n\nFollowing proposal acceptance just under a year ago, I started implementation this year. Recently the MR is in a good enough state for me to check it against clc-stackage, a tool for building all of stackage against custom GHC versions.\n\nThe result of that is this **issue in the core library committee repository,** where I detail which packages have changes which need to be put on to hackage, as well as a huge, unreadable gist filled with patches I made to get stackage compiling.\n\nThat brings me to the point of this discourse post - I ask that anyone that has a moment peruse the list, and if you are a contributor to one of these packages (or want to get involved with a package), that you submit a patch and let me know!\n\nThere are a lot of packages to patch, each with their own history and customs, and it would save time in the long run if patches are made that suit each package.\n\nAs well as the explicit breakage (of non-canonical `pure`, `return`, `(<>)`, and `mappend` definitions), removing canonical definitions of `return = pure` and `mappend = (<>)` would be good to reduce the future work we need to do.",
  "title": "Monad of No Return: The Great Patchening"
}