
3 Dec
2009
3 Dec
'09
9:12 a.m.
On Thu, 3 Dec 2009, Malcolm Wallace wrote:
#3709: Data.Either.partitionEithers is not lazy enough
This is a behavioural change, e.g.: Main> case partitionEithers1 [Left 'a', error "Not me"] of (x : _, _) -> x Program error: Not me Main> case partitionEithers2 [Left 'a', error "Not me"] of (x : _, _) -> x 'a'
Yes, and isn't that the point of the bugfix? No non-bottoming program has changed, but fewer programs fail now. I find it hard to imagine that anyone could have been relying on getting a crash here.
Making something more lazy can cause a memory leak.