Keyboard input monitoring

You could run a get-input loop asynchronously from the main application task. E.g. the loop could read(stdin, Char) continually and put it into a Channel, which the main task could check periodically.