This doesn't directly solve your problem, but you may want to take a look at zoom-cache [1]. I've never used it myself, but it seems pretty nice.
Cheers, [1] http://hackage.haskell.org/package/zoom-cache -- Felipe. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe