なんだろ。

パタンマッチ → 評価開始 → 遅延評価

なので宣言的にかける?

マクロのようなコードジェネレータは要らないのか?
構文を関数でかけそうだから、必要ないのかな

遅延評価は全てが継続っぽいし。

on lispのマクロで実現していてhaskellで実現不可能なことってあるのかなあ。