Vector also does something like what your are describing. I think the phrase to google for is "array recycling".
Has anyone done any research into fusing operations that involve thawing some data, mutating it, and then freezing it again?_______________________________________________Data.Vector does something similar; it turns vectors into streams, operates on the streams, and then turns them back into vectors. It can fuse these operations by removing intermediate However, I've done a bit of preliminary work on a fusion system that works on operations of the formrunST $ dox' <- thaw xfoo x'freeze x'and yields promising results in some cases. This could be useful for data structures that aren't stream-able, but suffer from lots of unnecessary freezing and unfreezing.This seems like the sort of thing that someone would have already done, so I wanted to check if anyone knew of any previous work on this.Cheers,Will
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe