Bang patterns, ~ patterns, and lazy let

Simon Peyton-Jones simonpj at microsoft.com
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.

Meanwhile:

| 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.

Simon


More information about the Haskell-prime mailing list