id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	os	architecture	failure	difficulty	testcase	blockedby	blocking	related
2670	Record selectors behaving badly wrt optimisation	simonmar	igloo	"The attached program performs much worse with HEAD as of today (and presumably also 6.10.1) than 6.8.3.  

{{{
> ghc-6.8.3 --make -O2 bug.hs
[1 of 1] Compiling Main             ( bug.hs, bug.o )
Linking bug ...
> time ./bug
1.17s real   1.17s user   0.01s system   99% ./bug
> ghc-6.11 --make -O2 bug.hs 
[1 of 1] Compiling Main             ( bug.hs, bug.o )
Linking bug ...
> time ./bug                    
1.58s real   1.58s user   0.01s system   99% ./bug
}}}

The problem appears to be in the code for `delete`, GHC has duplicated two calls to `next`.

Also note this is a version of the code we have in `eyeball/IOList.lhs` which illustrates some other problems in the current optimiser (although the other problems are not regressions, which is why I'm highlighting this one).
"	bug	closed	normal	6.10.2	Compiler	6.8.3	fixed			Unknown/Multiple	Unknown/Multiple		Unknown				
