DiceBot is inspired mainly from the Roll your own IRC bot Haskell tutorial, which uses a Reader monad for implicit parameters such as the server handle (there might be others in the case of the DiceBot).
8 (and most probably other enhancements) would be much easier to implement if a the code were better organized, and the Reader monad seems well-suited for the task. Keep in mind, though, that the bot might have to maintain state in the future (see #3), so the State monad might (also) be a better long-term choice (or maybe a monad stack based on Reader, Writer and IO).
DiceBot is inspired mainly from the Roll your own IRC bot Haskell tutorial, which uses a Reader monad for implicit parameters such as the server handle (there might be others in the case of the DiceBot).
8 (and most probably other enhancements) would be much easier to implement if a the code were better organized, and the Reader monad seems well-suited for the task. Keep in mind, though, that the bot might have to maintain state in the future (see #3), so the State monad might (also) be a better long-term choice (or maybe a monad stack based on Reader, Writer and IO).