
28 Apr
2008
28 Apr
'08
5:28 p.m.
Ian Lynagh wrote:
On Mon, Apr 28, 2008 at 09:42:10AM -0700, Simon Marlow wrote:
Ok. So I counter-propose that we deal with pattern bindings like this:
The static semantics of a pattern binding are given by the following translation. A binding 'p = e' has the same meaning as the set of bindings
z = e x1 = case z of { p -> x1 } ... xn = case z of { p -> xn }
where z is fresh, and x1..xn are the variables of the pattern p.
Just to check, this is saying "no change relative to Haskell 98" (although perhaps specifying it less ambiguously), right?
Right. In the absence of the MR, we need a way to say precisely what polymorphic overloaded pattern bindings mean, and the translation does just that. Cheers, Simon