{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreigmckiazkivfulrnknxnrgogtpv6qm2grjgi3pdm4zsk55unso6am",
    "uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mipjdjlo27o2"
  },
  "path": "/t/rfc-mutable-records-as-a-ghc-extension/13886#post_3",
  "publishedAt": "2026-04-04T11:12:54.000Z",
  "site": "https://discourse.haskell.org",
  "tags": [
    "Mutable Constructor Fields"
  ],
  "textContent": "I assume you’re talking about the Mutable Constructor Fields proposal.\n\nWhat it wants to do probably makes sense in terms of the garbage collector, but the result is a monstrous notion of a half-mutable ADT with all sorts of weird edge cases. It’d put it in the same category as partial ADT product updates.\n\nI instead want to see a clear separation between ADTs, which are always immutable and by default lazy, and mutable records, which we may well want to be strict by default. The ability to `thaw`/`freeze` a mutable record only exists as a convenience for construction and teardown, and should not be extended further.",
  "title": "[RFC] Mutable records as a GHC extension"
}