empty field label constructor infelicity

Simon Peyton-Jones simonpj@microsoft.com
Wed, 25 Sep 2002 10:58:30 +0100


| The report says "The expression F {}, where F is a data constructor,
is
| legal whether or not F was declared with record syntax, provided F has
no
| strict fields: it denotes F _|_1 ... _|_n where n is the arity of F."
|=20
| It unclear to me why there needs to be this provision for records with
| strict fields -- just let them be undefined -- but that
notwithstanding,
| GHC seems to do the wrong thing:

I think the report is quite reasonable here.... if there is a strict
field then F {} is unconditionally bottom, and you may as well write
'undefined'.  Omitting the "provided F has no strict fields" is
certainly defensible, but it's too late to change.

I agree that GHC does not implement the clause... will fix.

Simon