CoreStreams

class CoreStreams[DSL <: CoreDSL, Lib <: CoreLib[DSL]](val dsl: DSL, val lib: Lib & CoreLib[DSL])
Companion
object
class Object
trait Matchable
class Any

Type members

Classlikes

object LDemanding
object LPollable
object LPolled
object LSubscriber

Types

type LPollable[A] = Rec[[_] =>> LPollableF[A, _$1]]
type LPollableF[A, X] = Done |&| Done |+| A |*| X
type LPolled[A] = Done |+| A |*| LPollable[A]
type LSubscriber[A] = Rec[[_] =>> LSubscriberF[A, _$2]]
type LSubscriberF[A, X] = Need |+| Need |&| A |*| X

Value members

Concrete methods

def lInvertLPollable[A, B](lInvertElem: One -⚬ B |*| A): One -⚬ LPollable[A] |*| LSubscriber[B]
def lInvertLPollableF[A, B, x, y](lInvertA: One -⚬ B |*| A, lInvertSub: One -⚬ y |*| x): One -⚬ LPollableF[A, x] |*| LSubscriberF[B, y]
def rInvertLSubscriber[A, B](rInvertElem: A |*| B -⚬ One): LSubscriber[B] |*| LPollable[A] -⚬ One
def rInvertLSubscriberF[A, B, x, y](rInvertA: A |*| B -⚬ One, rInvertSub: x |*| y -⚬ One): LSubscriberF[B, y] |*| LPollableF[A, x] -⚬ One

Concrete fields

val dsl: DSL
val lib: Lib & CoreLib[DSL]

Implicits

Implicits

implicit def pollableSubscriberDuality[A, B](BA: Dual[B, A]): Dual[LPollable[B], LSubscriber[A]]
implicit def subscriberPollableDuality[A, B](AB: Dual[A, B]): Dual[LSubscriber[B], LPollable[A]]