{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreiebu3e4oexhzwtfqwtzxv4tf2lcvkcvorxo7fdtmhmzbbdvsnkjmq",
"uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mnw6juhse6w2"
},
"path": "/t/haskells-missing-mutable-reference-type/14248#post_14",
"publishedAt": "2026-06-10T06:54:15.000Z",
"site": "https://discourse.haskell.org",
"textContent": "tomjaguarpaw:\n\n> which allows references to be allocated dynamically\n\nAnd that’s a feature you’ll have to argue for.\n\nPer my earlier example the piece of code we’re looking to allow for is\n\n\n main = overriding x (+2) foo\n\n\nsuch that `overriding x` modifies the behavior of `foo` _without_ passing `x` to `foo`.\n\nYour implementation uses `ReaderT Vault`, which, as others have pointed out, is isomorphic to passing `Vault` to every single function, i.e.\n\n\n main vault = overriding vault x (+2) $ foo vault\n",
"title": "Haskell's missing mutable reference type"
}