{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreibw6zj6iaiskf7m3ixk2drvoniwhe2oubwjfzaddl4gktkp2hucfq",
    "uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3moalcsa6h2a2"
  },
  "path": "/t/haskells-missing-mutable-reference-type/14248?page=3#post_50",
  "publishedAt": "2026-06-14T10:22:24.000Z",
  "site": "https://discourse.haskell.org",
  "textContent": "> modifications to an `IOScopedRef` in one thread would not be observed by another thread\n\nDo you mean any other thread or would child threads see it? I’m pretty sure that’s what you would want, otherwise your logging example gets very annoying as soon as you do any concurrency inside a modification block.\n\nIn fact, it seems to me that this is the crux of it rather than a thread-local variable, its a thread-and-children-local-variable. The “scoped” part of your proposal can be achieved by just forking a child thread before doing the modification!",
  "title": "Haskell's missing mutable reference type"
}