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.