External Publication
Visit Post

[RFC] Mutable records as a GHC extension

Haskell Community [Unofficial] April 4, 2026
Source

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.

There 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 let Foo { .. ] = x in Bar { a = b, .. }).

Discussion in the ATmosphere

Loading comments...