[Haskell-cafe] 'Proper' use of the State monad