pure

object pure
class Object
trait Matchable
class Any

Type members

Classlikes

final case class FiberCtx[E](self: PureFiber[E, _], masks: List[MaskId], finalizers: List[PureConc[E, Unit]])
final class MaskId
Companion
object
object MaskId
Companion
class
final class PureFiber[E, A](val state0: MVar[Outcome[[_] =>> PureConc[E, _$80], E, A]]) extends Fiber[[_] =>> PureConc[E, _$81], E, A]

Types

type FiberR[E, A] = Kleisli[[_] =>> IdOC[E, _$1], FiberCtx[E], A]
type Finalizer[E] = PureConc[E, Unit]
type IdOC[E, A] = Outcome[Id, E, A]
type MVarR[F[_], A] = Kleisli[F, Universe, A]
type PureConc[E, A] = MVarR[[_] =>> ThreadT[[_] =>> FiberR[E, _$3], _$4], A]
type ResolvedPC[E, A] = ThreadT[[_] =>> IdOC[E, _$5], A]

Value members

Concrete methods

def resolveMain[E, A](pc: PureConc[E, A]): ResolvedPC[E, IdOC[E, A]]
def run[E, A](pc: PureConc[E, A]): Outcome[[A] =>> Option[A], E, A]

Produces Succeeded(None) when the main fiber is deadlocked. Note that deadlocks outside of the main fiber are ignored when results are appropriately produced (i.e. daemon semantics).

Produces Succeeded(None) when the main fiber is deadlocked. Note that deadlocks outside of the main fiber are ignored when results are appropriately produced (i.e. daemon semantics).

Implicits

Implicits

implicit def allocateForPureConc[E]: GenConcurrent[[_] =>> PureConc[E, _$27], E]
implicit def eqPureConc[E, A](`evidence$3`: Eq[E], `evidence$4`: Eq[A]): Eq[PureConc[E, A]]
implicit def monadErrorIdOC[E]: MonadError[[_] =>> IdOC[E, _$6], E]
implicit def orderForPureConc[E, A](`evidence$1`: Order[E], `evidence$2`: Order[A]): Order[PureConc[E, A]]
implicit def showPureConc[E, A](`evidence$5`: Show[E], `evidence$6`: Show[A]): Show[PureConc[E, A]]