Re: State monads don't respect the monad laws in Haskell