On 26 Sep 2011, at 15:50, Edward Kmett wrote:


>    class MonadState s m | m -> s where
>        ...
>        state :: (s -> (a,s)) -> m a
>        state f = do s <- get
>                     let (a,s') = f s
>                     set s'
>                     return a
>

I am 100% behind this change. 

It has been on the short list of changes that I want to make to mtl.

(+1)