see also: http://hackage.haskell.org/packages/archive/mtl/latest/doc/html/Control-Monad-State-Lazy.html#v:state

On 22 December 2010 20:02, Ryan Ingram <ryani.spam@gmail.com> wrote:
Interesting.  In that case,

state f = StateT $ \s -> Identity (f s)

allows "state" to replace "State" in that code.

Ozgur