It’s time. IO needs to die a horrible death. As functional programmers, we sometimes delude ourselves into thinking that functional code is always significantly easier to understand, more declarative, and more powerful. That’s just not true, as the following snippets should demonstrate: blahblah :: Boolean -> Boolean -> Boolean -> IO () blahblah b1 b2 b3 = ... def blahblah(b1: Boolean, b2: Boolean