{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreidfmzmjodhftah7t4zavwtlpp2krmx7hizh2nqujmgeod7asa6pb4",
"uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3miqll6obfw32"
},
"path": "/t/rfc-mutable-records-as-a-ghc-extension/13886#post_5",
"publishedAt": "2026-04-04T20:35:59.000Z",
"site": "https://discourse.haskell.org",
"tags": [
"9545"
],
"textContent": "There’s a distinction here between independent values grouped together for ease of access and a well-formed set of interdependent values. In my mind mutable records are for the first case and ADTs are for the second. Mutable records are updated; ADTs are constructed. The syntax should reflect this mental model.\n\nThere also other benefits to the alternate formulation, e.g. it would avoid the confusion caused by `-Wambiguous-fields` (see e.g. topic #9545), and it would allow feeding fields from other types (a better equivalence is\n`let Foo { .. ] = x in Bar { a = b, .. }`).",
"title": "[RFC] Mutable records as a GHC extension"
}