[Haskell-cafe] "Read-only" functions in State Monad