{
  "$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"
}