[Haskell] ST Monad and all that