when と unless も追加。 infix で指定した方が嬉しいかもしれないけど、デフォルトで多すぎてもあれなので、あとで考える
monad の >>= のところを抽象化。これで MonadState みたいなのも作れる