Fs2 Stream.Compiler не найден (не удалось найти неявное значение Compiler [[x] F [x], G]) - PullRequest
4 голосов
/ 27 мая 2019

Я пытаюсь скомпилировать поток, но почему-то Compiler не находится в области видимости, какая граница контекста необходима для приведения его в область видимости?

import cats.Monad

def compilingStream[F[_]: Monad]: F[List[Int]] = {
  val stream: fs2.Stream[F, Int] = fs2.Stream.emit(1).covary[F]
  stream.head.compile.toList
}


error: could not find implicit value for parameter compiler: fs2.Stream.Compiler[[x]F[x],G]
         stream.head.compile.toList
                     ^

1 Ответ

6 голосов
/ 27 мая 2019

Fs2 Stream#compile теперь требуется Sync[F] (см. this ):

  import cats.effect.Sync

  def compilingStream[F[_]: Sync]: F[List[Int]] = {
    val stream: fs2.Stream[F, Int] = fs2.Stream.emit(1).covary[F]
    stream.head.compile.toList
  }

Об этом сообщает сопровождающий библиотеки:

fs2 Stream # compile теперь требует синхронизации [F]. Даже на совершенно чистых ручьях. Из-за управления ресурсами. Печальный. Panda.

Даниэль Спивак

...