Mark, I'm no expert, but does it help to start from withStateT?
> withStateT :: (s -> s) -> StateT s m a -> StateT s m a > withStateT f m = StateT $ runStateT m . f There are some notes about computations and lifting state transformers in Modular Denotational Semantics for Compiler Construction Sheng Liang, Paul Hudak http://citeseer.nj.nec.com/liang96modular.html Monad Transformers and Modular Interpreters Sheng Liang, Paul Hudak, Mark Jones http://citeseer.nj.nec.com/liang95monad.html Don't mind me: I just couldn't control the vestiges of librarianship lurking in my dark, lost soul... Dobrego Nowego Roku! Chris Milton (no, not MLton:-) --- Mark Carroll <[EMAIL PROTECTED]> wrote: > Omitting the typeclass bit, I'm trying to write something like > (s1 -> s2) -> StateT s1 m () -> StateT s2 m a -> StateT s1 m a > > That is, it sequences two StateT computations, providing a way to > translate from the first's state to the second to keep the chain > going. > > I can easily write something for when s1 and s2 are the same, and my > understanding of much of Control.Monad.* remains tenuous at best, but if > it's easy for anyone to provide me with some tips, then I thought I should > mention that it'd certainly be helpful. > > And Happy New Year, everyone! > > -- Mark > _______________________________________________ > Haskell-Cafe mailing list > [EMAIL PROTECTED] > http://www.haskell.org/mailman/listinfo/haskell-cafe _______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe