何らかの理由で、以下が機能しません
object NtExtTest {
implicit class NaturalTransformExt[M[_], N[_]](val self: NaturalTransformation[M,N]) extends AnyVal {
def test(b:Boolean) = b
}
}
test
自然な変換でメソッドを呼び出すとき。Intellij はそれを拡張関数として認識しますが、コンパイルではvalue test is not a member of cats.~>
. scalaz NaturalTransformation を使用する場合も同じことが起こります。コンパイルが拡張子を認識できるようにするためにできることはありますか?
Scala のバージョンは 2.11.8 です
失敗する例:
import NtExtTest._
class NtTest[B] extends NaturalTransformation[Either[B,?], Xor[B,?]] {
def apply[A](fa: Either[B, A]): Xor[B, A] = {
fa match {
case Left(l) => Xor.left(l)
case Right(r) => Xor.right(r)
}
}
}
val test = new NtTest[String]
test.test(false)
(上記はカインド プロジェクター プラグインを使用していますが、タイプ ラムダ、または単一パラメーターの上位のカインド タイプでも同様に失敗します)