>817
IOモナドは他のモナドとちがって
随伴使ったモナドと解すべきなんだと思う。

つまり
普通のモナド: Maybe, List, etc..
随伴で構成されたモナド: IOモナド

IOモナドで全部副作用と名のつくものを一括で処理しているのが
いろいろな鯨飲の元なんだと思う。
IOモナドを役割ごとにもっと分割させないと。
本当にIOモナドはI/Oだけ扱えばいいんだと思う。