
15 Nov
2011
15 Nov
'11
11:15 a.m.
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