{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreierezro6r4xnhi45jusq6ljws3tc7tl23s2eogakodzlhals4uicq",
"uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3moayps4gkgy2"
},
"path": "/t/haskells-missing-mutable-reference-type/14248?page=3#post_58",
"publishedAt": "2026-06-14T12:41:16.000Z",
"site": "https://discourse.haskell.org",
"textContent": "I see! That’s interesting. Yes, there is something ugly there. I’m not sure how to state the property that you’re aiming for here, but it seems probably desirable. It’s interesting that we’d need to strip away a bunch of the normal `IORef` interface to ensure it.\n\nAnd indeed, we don’t have non-scoped modification functions for masking state, which is perhaps telling.\n\nI think a non-scoped `InheritedThreadLocalIORef` makes sense from a machine perspective but that doesn’t mean it has good semantics! I will have more of a think about this.",
"title": "Haskell's missing mutable reference type"
}