{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreidfmzmjodhftah7t4zavwtlpp2krmx7hizh2nqujmgeod7asa6pb4",
    "uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mipjcknenph2"
  },
  "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"
}