
"Simon Marlow"
That's because currently large objects aren't included in the profile.
Okay, I didn't know that.
I'll look into fixing this.
Great! But just knowing about it also helps a lot. Since you're on the line, could you confirm or deny that the (//) operator is something equivalent to (roughly): a // ps = runST (thaw a >>= \u -> update ps >> unsafeFreeze u) I.e. that the list of updates are treated as an atomic operation? Because doing it that way explicitly sure didn't seem to help. OTOH, doing lots of small (//) seems to be faster than doing a few large ones (containing the same updates). Go figure. BTW: does anybody know an accepted fastest way of doing in-place permutations on an array? -kzm -- If I haven't seen further, it is by standing in the footprints of giants