You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The interpreter uses the Concurrent instance to interrupt effect evaluation. When we translate with the identity FunctionK, the interpreter forgets about the old Concurrent[IO] it had.
The "right" fix with the 1.0 design is changing the signature of translate to take an Option[Concurrent[G]], but then this breaks mapK (and binary compatibility).
Another option is documenting the limitations of translate and adding a translateConcurrent overload that takes an implicit Concurrent[G].
The text was updated successfully, but these errors were encountered:
The TranslateInterrupt typeclass has two implicit constructors but we only ever use the fallback one. I think we might want a method like translateInterruptible that takes a Concurrent instance
One thing I recently noticed is that
Stream#translate
doesn't take aConcurrent[G]
anymore, which seems like an oversight to me. For example:The interpreter uses the
Concurrent
instance to interrupt effect evaluation. When we translate with the identityFunctionK
, the interpreter forgets about the oldConcurrent[IO]
it had.The "right" fix with the 1.0 design is changing the signature of
translate
to take anOption[Concurrent[G]]
, but then this breaksmapK
(and binary compatibility).Another option is documenting the limitations of
translate
and adding atranslateConcurrent
overload that takes an implicitConcurrent[G]
.The text was updated successfully, but these errors were encountered: