
DIY monads are good when: you fix the state variables, you don't want to mention them in subprogram parameters.
I've taken this solution for a fairly large piece of software. One word of warning about DIY state monads, you have to be very carefull about strictness and lazyness. If your monad or state are at all lazy, you can end up dragging a lot of old states around. When you construct a new state, you want to be sure that it contains no unevaluated references to a previous state! Cheers, Theodore Norvell ---------------------------- Dr. Theodore Norvell theo@engr.mun.ca Electrical and Computer Engineering http://www.engr.mun.ca/~theo Engineering and Applied Science Memorial University of Newfoundland St. John's, NF, Canada, A1B 3X5 Currently visiting the Department of Computer Science and ICICS at the University of British Columbia. See my webpage for contact details.