我正在尝试编译流,但是以某种方式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
^
fs2 Stream#compile
现在需要一个 Sync[F]
(请参阅此(:
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流#编译现在需要同步[F]。即使在完全纯净的溪流上。因为资源管理。伤心。熊猫。
Daniel Spiewak