PS

Inference-Driving Macros

Scalaのmacroについて・・・

Inference-Driving Macros ってどういうことだろうと思っていたが、Scalaのmacroは相当賢くて

    def apply(x: String) = macro vimpl
    def vimpl(c: Context)(x: c.Expr[String]): c.Expr[Any] = ...

としてもちゃんと戻り値の型をmacroの呼び出し側で決定してくれる、ということらしい。*1

おかげでmacroの作成側は、型の名前さえ知っていればいいということになり非常に助かる。

*1:戻り値の型を引数によって変えることができる。