Проблема с 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/

Другие вопросы по тегам