Hi Wolfgang, Thanks for your informative reply. At first I didn't understand it, but a search on "StateT" lead me to the paper "Monad Transformers and Modular Interpreters" by Liang, Hudak and Jones, which clarified some of the ideas for me.
The state transformer approach seems to have advantageous in that it provides a framework for building new monads from old, and accessing the components. One disadvantage is that it lacks symmetry in that one monad is arbitrarily chosen to sit inside the other. I found another approach mentioned called "stratification", developed by David Espinosa in his PhD thesis "Semantic Lego". I am finding it a little hard to read because he codes in Scheme, not Haskell, but it sounds promising and seems to preserve symmetry better. Are you (or others) aware of this kind of approach being used in Haskell? Cheers, Mark. _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell