[Haskell-cafe] Combine `StateT` and `InputT` to maintain state on Ctrl-C interrupt