我正在尝试为Monad
具有多个类型参数的类型实现猫实例。我查看了猫Either
实例,看看它是如何在那里完成的。来自猫的部分Either
Monad
实例代码复制如下:
import cats.Monad
object EitherMonad {
implicit def instance[A]: Monad[Either[A, ?]] =
new Monad[Either[A, ?]] {
def pure[B](b: B): Either[A, B] = Right(b)
def flatMap[B, C](fa: Either[A, B])(f: B => Either[A, C]): Either[A, C] =
fa.right.flatMap(f)
}
}
它无法编译并出现以下错误:error: not found: type ?
为我自己的类型创建实例时,类型是什么?
?如何使用它?