On Wed, 31 Dec 2003, Ken Shan wrote: > Don't you need a (s2 -> s1) function as well, to translate the final > state back into StateT s1? Yes, you're right: the thing actually running the stateful computation presumably expects to start it with a state of type s1 and to be able to extract from it a state of type s1 when it's done. -- Mark