ScalaZ: отсутствует базовый метод flatMap для монадных трансформаторов? (SubFlatMap)

У меня есть следующий код:

def foo: OptionT[Future, String] = OptionT(Future.successful("foobar"))
def f: String => Option[Int] = s => Some(s.length)

Я ищу что-то в библиотеке скалаза, которая составляет f после foo, но есть только две реализации flatMap в OptionT (flatMap а также flatMapF), и ни одна из них не имеет подписи, которую я ищу (A => Option[B]),

Я могу реализовать это сам легко, например, OptionT(foo.run.map(_.flatMap(f))) для любого Functor За foo.flatMap(e => Future.succesful(f(e))) на будущее конкретно (или любой Applicative в этом отношении), но почему этот метод отсутствует в первую очередь? Вроде бы довольно базовый функционал. Я пропускаю импорт или другое место в библиотеке скалаза, где реализована эта функциональность?

Спасибо

РЕДАКТИРОВАТЬ: я вижу, что Cats включает этот метод в subFlatMap https://github.com/typelevel/cats/blob/master/core/src/main/scala/cats/data/OptionT.scala.

0 ответов

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