[Haskell-beginners] State monad and destructive updates