У меня есть такой код:
(for {
oldResult <- EitherT[Future, A, B](getById(id))
newResult <- EitherT.right(update(changeOldData(oldResult)))
} yield newResult).value
Где функции возвращаются
getById -> Future[Either[A, B]]
update -> Future[B]
changeOldData -> B
Предполагается, что весь блок вернется:
Future[Either[A, B]]
В IntelliJ нет претензий к приведенному выше коду, но при компиляции я получаю следующую ошибку:
[error] found : B => cats.data.EitherT[scala.concurrent.Future,Nothing,B]
[error] required: B => cats.data.EitherT[scala.concurrent.Future,A,B]
[error] oldResult <- EitherT[Future, A, B](
Я попытался не указывать тип, но тоже получаю ту же ошибку. Есть идеи, почему?