由于某种原因,以下无法正常工作
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)
(上面使用了种类投影仪插件,但对于 lambdas 类型或单个参数更高种类的类型同样失败)