なるべく根本的な関数定義はラムダ計算のカテゴリー内で
やってしまって後はカテゴリーごとにfmapするなりliftさせるなり
したほうが再利用できるようになるし。

sample :: a -> IO a
なKleisli射はなるべく作らない方向性でいくべきなんじゃないかって。

モジュール化も損なわれるんじゃないかと。
でもそこまでいってしまうと作れなくなってしまうというジレンマに陥って
しまうから・・・。どうなんだろうねぇ。。