Why not allow empty record updates?

Yitzchak Gale gale at sefer.org
Tue Nov 15 12:15:37 CET 2011


Simon Peyton-Jones wrote:
>> Trouble is, what type does this have?
>>       f x = x {}

Malcolm Wallace wrote:
> Empty record patterns {} are permitted, even for types
> that are not declared with named fields.
> So I don't see why an empty record update should
> require the type to be declared with named fields either.

Yes. The translation of record updates given in the Report
makes perfect sense for {}. It is only forbidden by
"n >= 1", but no reason is given for that restriction.

According to that translation, the type of x {} is
the type of the case expression it translates to.

Thanks,
Yitz



More information about the Glasgow-haskell-users mailing list