> All right, but why? It seems an obvious trick, take some pieces that > benefit from imperative processing, and wrap them in ST, leaving the > rest of the program as it were.
Because the reason for your terrible performance is that arrays are being copied willy nilly :). In order to avoid this and to get in-place update (which is what you wanted originally, iirc), you need to do all your modifications inside the ST or IO monad. > Can you (or anybody else) explain the memory behaviour I see (using > hundreds of megabytes, but only tens of K visible in the profiling > output)? I cannot :). If your program is short and I can take a look at it, I might be able to say something though.... - Hal _______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe
