[Haskell-cafe] questions on lazy pattern, StateT monad