A simpler way to handle cabal repl startup failures

We assume whenever input stream ends the REPL has exited.
In particular, that means we can gracefully die and not
silently hang on unexpected startup failures