Я планирую использовать Bifunctor IO
с каналом для ошибок.Поэтому я попытался предоставить неявный экземпляр для MonadError
, но он не может скомпилироваться.
import cats.MonadError
sealed trait AppErrors
//...
object App{
def runApp[F[_, _]: MonadError[F[AppErrors, ?], ?]] = {
}
}
Например, cats-bio : cats.BIO[+E, +A]
Я получилошибка компиляции
Error:(13, 22) type F takes type parameters
def runApp[F[_, _] : MonadError[F[AppErrors, ?], ?]] ={}
Я не очень понимаю, как исправить это, требующее MonadError[F[_], A]
.