Haskell 98
Ross Paterson
ross@soi.city.ac.uk
Wed, 25 Sep 2002 12:57:05 +0100
On Wed, Sep 25, 2002 at 12:34:53PM +0100, Simon Peyton-Jones wrote:
> I spoke too soon. Consider
>
> data F = F Int !Int
>
> data S = S { x::Int, y::!Int }
>
> According to the words above
> F {} is illegal
> but what about this one?
> S {}
I think the sentence in question (end of 3.15.2) is just a clarification;
the preceding 4 rules are sufficient and clear: F{}, S{} and S{x=3} are
all illegal because they omit a value for a strict field. That is, it's
correct, though not strictly necessary, nor does it cover all the cases.