笹田:それはやりすぎ?松本:やりすぎかなと思っていて。Elixirっていう言語は、マクロはあるんだけど、マクロがあるっていっても、あれはASTを操作できるだけなんだよね。するとそれは1つの方向性として、もしかしたらありなんじゃないかと思うところはある。笹田:もう定義されているメソッドは書き換えられなくて...。松本:プログラムをコンパイル時に、ある一定の条件でASTを取り出して、それを加工してもう1回埋め込んだ状態で、コンパイルする。笹田:でも、マクロってそういうもんじゃない?松本:マクロはそういうもんなんだけど、えーっと...。Cのとかは全然違いますけど。松本:まぁ、Cのマクロは違うけど。Lispはもともと、プログラムがTreeだから。Lispだったらあんまり問題ないんだけど。Dylanって言語があって、あれのマクロって、定義がすごい大変なので。Algolっぽい文法とマクロを組み合わさないといけなくて、パターンマッチングみたいなことをして、なんとかにマッチしたところは、ここに展開するみたいなことを書かないといけなくて、そういうのって、絶対に嫌ですよね。笹田:ASTを取り出して、それを弄るのはいいんだ。えーっとね、まだマシ。