State monads don't respect the monad laws in Haskell