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