scalacats应用程序无法编译



我试着跟随https://typelevel.org/cats/typeclasses/applicative.html

trait Applicative[F[_]] extends Functor[F] {
def product[A, B](fa: F[A], fb: F[B]): F[(A, B)]
def pure[A](a: A): F[A]
}
// Example implementation for right-biased Either
implicit def applicativeForEither[L]: Applicative[Either[L, *]] = new Applicative[Either[L, *]] {
def product[A, B](fa: Either[L, A], fb: Either[L, B]): Either[L, (A, B)] = (fa, fb) match {
case (Right(a), Right(b)) => Right((a, b))
case (Left(l) , _       ) => Left(l)
case (_       , Left(l) ) => Left(l)
}
def pure[A](a: A): Either[L, A] = Right(a)
def map[A, B](fa: Either[L, A])(f: A => B): Either[L, B] = fa match {
case Right(a) => Right(f(a))
case Left(l)  => Left(l)
}
}

编译失败,出现错误:

未找到

:类型*隐式def-applictiveForEar[L]:Applicative[Ear[L,*]]=new Applicative[Ether[L,**]]{

在cat中使用"?"而不是"*"(例如EitherTFunctor(,但当我复制粘贴它时,它也不会编译。

我该怎么修?

要使您的代码与类型params中的星号兼容,您应该在build.sbt文件或plugins.sbt文件中添加种类投影仪插件:

addCompilerPlugin("org.typelevel" % "kind-projector" % "0.13.2" cross CrossVersion.full)

在README.MD 上阅读更多关于实物投影仪的信息

相关内容

  • 没有找到相关文章

最新更新