kind-projector っていう compiler plugin が素晴らしい件

https://github.com/non/kind-projector

@yuroyoro さんが書いていたこれ
Scalaにおける型パラメータの部分適用 [({type F[X] = G[A,X]})#F] について
プレースホルダを使って短く書けるようになるっていうplugin。
Scalaz に大量にでてくるあれです。

自分が試そうとした時点では jar は publish されていないようだったので、ちょっとScalazに組み込んでためしてみたら、こんな感じ

https://github.com/xuwei-k/scalaz/compare/278a4e810edafca229b42a86d3f86eb6c8d7cf6c...kind-projector

で、すんなりうまくいきました。plugin本体のコード130行程度のみしかなくて、こんなことできるなんてすげぇーーーと一人で感動していました。ただ、共変とか反変の場合のやり方がわからなかった(まだ機能として存在しない?)ですが。

継続のpluginみたいに、標準添付のpluginにしてほしい、っていうかもうcompiler本体に組み込んじゃっていいんじゃないか?