Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Fs2 Stream.Compiler is not found (could not find implicit value Compiler[[x]F[x],G])

Tags:

scala

fs2

I am trying to compile the stream, but somehow Compiler is not in scope, what context bound is needed for bringing it in scope?

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
                     ^

like image 244
Mikhail Golubtsov Avatar asked May 27 '19 15:05

Mikhail Golubtsov


1 Answers

Fs2 Stream#compile now requires a Sync[F] (see 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
  }

This is communicated by the library maintainer:

fs2 Stream#compile now requires a Sync[F]. Even on completely pure streams. Because of resource management. Sad. Panda.

Daniel Spiewak

like image 156
Valy Dia Avatar answered Sep 28 '22 03:09

Valy Dia