[Haskell-cafe] Calling a State Monad recursively from within a let-block, via runState?