Arrow 追加。
Arrow も作った！
reverse だと (1 2 3 .. ) とかのとき思わぬ動作になっちゃう
>> と同じ意味で結合だけが違う中置構文、 | に決定した。
抽☆象☆化〜〜〜ｯ
Merge branch 'prelude' into monad
do-monad とか do-state も Control protocol で汎用化する。
rules も control に含ませてしまおう。 Applicative の構文だけが使いたければ、 applicative-rule を使って infixing すればよい。
Merge branch 'prelude' into monad
よく考えたら、 do-monad とかなくても、 state-context で x <- get :in とか使えるなら、それでいいよね。
Arrow にも変更をマージ。
Merge branch 'prelude' into monad