
Hi Simon
One thing to check is heap usage and GC time. Does GC time, or residency (both reported by -Sstderr) go up a lot? It's possible that an optimisation is changing space behaviour for the worse.
I've attached the logs for both -O0 (norm) and -O1 (opt), it appears that there are 4 times more garbage collections with -O1, so thats likely to be it.
Does it still happen if you use profiling? If so, the profile should narrow down the culprit a lot. That might avoid the need to reproduce it elsewhere.
Profiling with -O1 is faster than -O1 and -O0, so turning on profiling fixes whatever is going wrong. The darcs repo for the code is at: http://www.cs.york.ac.uk/fp/darcs/catch/ This is the catch_1 directory. Unfortunately it will be a nightmare to build... Thanks Neil