
Hi Toby, Toby Murray wrote:
Suppose I have a transformer A of type State s a... Suppose I have other state transformers of type StateT s m a... I can manually convert A to be of the second kind as follows... pure :: (Monad m) => State s a -> StateT s m a pure func = StateT (\arg -> (return (runState func arg)))
Yes, this does come up from time to time. It could be useful to give it a standard name in the libraries. But "pure" is not a good name - that is firmly entrenched to mean other important things in Control.Applicative and Control.Arrow. Perhaps liftT? liftT :: (Monad m) => State s a -> StateT s m a liftT (State f) = StateT $ return . f You can submit your proposal by following this procedure: http://www.haskell.org/haskellwiki/Library_submissions Regards, Yitz