# 29 IO ## 29.9 Chapter Exercises ### File I/O with Vigenère see [src/Vigenere.hs](./src/Vigenere.hs) ```shell > echo "this is a test!" | ./Vigenere -e blah | ./Vigenere -d blah this is a test! ``` ### Add timeouts to your utility see [src/Vigenere.hs](./src/Vigenere.hs) The `hWaitForInput` does not work so well though. It needs a newline to not timeout. Or, of course, an EOF. ### Config Directories see [src/IniDir.hs](./src/IniDir.hs) There are some bugs in my parser (e.g. comments after values), but the logic of checking the dirctory works!