Проблема с Cats FlatMap в моем классе Tagless Final
У меня есть следующий класс:
class MyBot[F[_] : FlatMap]
В этом классе у меня есть функция:
private def handleCallback(): F[Boolean]
В моем понимании это должно работать:
handleCallback().flatMap(..)
Но это бросает: cannot resolve symbol flatMap
Что мне не хватает?
2 ответа
Решение Mon Calamari не решило мою проблему, но при проверке FlatMap
в предложенном блоге я заметил:
import cats.implicits._
что я пропустил - и исправил мою проблему - все осталось прежним.
Вам нужно будет вызвать экземпляр FlatMap[F]
и использовать его методы для flatMap:
class MyBot[F[_]](implicit F: FlatMap[F]) {
def handleCallback: F[Boolean] = ...
def flatMapCallback: F[Boolean] = F.flatMap(handleCallback) { bool =>
...
}
}
Больше подробностей в большом блоге от eed3si9n: http://eed3si9n.com/herding-cats/