Bang patterns, ~ patterns, and lazy let

Simon Peyton-Jones simonpj at
Wed Feb 8 05:30:03 EST 2006

I've updated the Wiki to add your strict proposal, but rather briefly.
If you want to add stuff, send it to me and I'll add it.


| And as a consequence, it is no longer possible to transform a pair of
| bindings into a binding of a pair. In Haskell 98,
|     p1 = e1
|     p2 = e2
| is always equivalent to
|     (~p1, ~p2) = (e1,e2)

In your strict proposal, I'm sure you hope that the above pair would be
equivalent to
	(p1,p2) = (e1,e2)
which would be even nicer.

But sadly I don't think it is, because that'd change the strongly
connected component structure.  Somehow that smells wrong.


More information about the Haskell-prime mailing list