やっぱり、ここは可変長で渡すよりはリストを渡した方がいいな
assign macro (:=) および compose macro (:.) および :in , :where 追加。 :in は x := y :in z とか使うけど、 x <- y :in z とかみたいに、 monad にも適用できる。
Merge branch 'prelude' into monad
where-rule とかは prelude の rule ではなくて、 primitive の rule とする。
Merge branch 'prelude' into monad
let は使えないけど macro-compose は使えるとか、細かく指定できたら嬉しいかもと思って分けたけど、よく考えたら 混乱が激しくなる気がするので primitive-rule はひとまとまりとする
Merge branch 'prelude' into monad
:in は primitive に持たせ、 <- と組み合わせて使用する。