>>
高階関数というのもあまり気にしなくて良いんでないかな。

状態を操作する関数を組み合わせると、
状態を陽に書かないまま任意の入出力操作が表せる。
組み合わせること自体には副作用が必要ない。

ってとこでは。

ときに、I/O以外のmonadの使い道って何?