Observers

trait Observers[M[_]]
class Object
trait Matchable
class Any
trait Observe[M]
trait Propagation[M]

Type members

Types

type ITrigger[D[_], Δ[_, _], I]
final type Trigger[A, Δ] = `Forall{* -> *}`[[_] =>> ITrigger[[i] =>> A, [i, j] =>> Δ, _$35]]

Value members

Abstract methods

def iDiscard[D[_], Δ[_, _], I]: ITrigger[D, Δ, I]
def iFire[D[_], Δ[_, _], I](action: M[Unit]): ITrigger[D, Δ, I]
def iFireReload[D[_], Δ[_, _], I](action: M[Unit], next: [j] => (x$1: D[j], x$2: Δ[I, j]) => ITrigger[D, Δ, j]): ITrigger[D, Δ, I]
def iReconsider[D[_], Δ[_, _], I](action: M[ITrigger[D, Δ, I]]): ITrigger[D, Δ, I]
def iSleep[D[_], Δ[_, _], I](next: [j] => (x$1: D[j], x$2: Δ[I, j]) => ITrigger[D, Δ, j]): ITrigger[D, Δ, I]

Concrete methods

def continually[D, Δ](f: D => M[Unit]): D => Trigger[D, Δ]
def continually[D, Δ](f: (D, Δ) => M[Unit]): (D, Δ) => Trigger[D, Δ]
def discard[A, Δ]: Trigger[A, Δ]
def fire[A, Δ](action: M[Unit]): Trigger[A, Δ]
def fireReload[A, Δ](action: M[Unit], next: (A, Δ) => Trigger[A, Δ]): Trigger[A, Δ]
def iContinually[D[_], Δ[_, _]](f: [i] => (x$1: D[i]) => M[Unit]): [i] => (x$1: D[i]) => ITrigger[D, Δ, i]
def iContinually[D[_], Δ[_, _], I](f: [i, j] => (x$1: D[j], x$2: Δ[i, j]) => M[Unit]): [j] => (x$1: D[j], x$2: Δ[I, j]) => ITrigger[D, Δ, j]
def iThreshold[D[_], Δ[_, _]](f: [i] => (x$1: D[i]) => Option[M[Unit]]): [i] => (x$1: D[i]) => ITrigger[D, Δ, i]
def observerS[D, Δ, S](s: S)(f: S => TriggerF[M, D, Δ, S]): Trigger[D, Δ]
def reconsider[A, Δ](action: M[Trigger[A, Δ]]): Trigger[A, Δ]
def sleep[A, Δ](next: (A, Δ) => Trigger[A, Δ]): Trigger[A, Δ]
def threshold[D, Δ](f: D => Option[M[Unit]]): D => Trigger[D, Δ]

Keep trying f until it returns Some. Then fire the returned program.

Keep trying f until it returns Some. Then fire the returned program.

def threshold1[D, Δ](f: D => Option[M[Unit]]): (D, Δ) => Trigger[D, Δ]

Keep trying f until it returns Some. Then fire the returned program.

Keep trying f until it returns Some. Then fire the returned program.

def thresholdOpt[D, Δ](f: D => Option[Option[M[Unit]]]): D => Trigger[D, Δ]

Keep trying f until it returns Some. Then fire the returned program, if any.

Keep trying f until it returns Some. Then fire the returned program, if any.

def thresholdOpt1[D, Δ](f: D => Option[Option[M[Unit]]]): (D, Δ) => Trigger[D, Δ]

Keep trying f until it returns Some. Then fire the returned program, if any.

Keep trying f until it returns Some. Then fire the returned program, if any.

def thresholdTransition[D, Δ](f: D => Option[Trigger[D, Δ]]): D => Trigger[D, Δ]
def thresholdTransition1[D, Δ](f: D => Option[Trigger[D, Δ]]): (D, Δ) => Trigger[D, Δ]
def untilRight[D, Δ](f: D => Either[M[Unit], M[Unit]]): D => Trigger[D, Δ]
def untilRight[D, Δ](f: (D, Δ) => Either[M[Unit], M[Unit]]): (D, Δ) => Trigger[D, Δ]
def untilRightS[S, D, Δ](init: D => Either[M[S], M[Unit]], trans: (S, D, Δ) => Either[M[S], M[Unit]]): D => Trigger[D, Δ]
def untilRightS[S, D, Δ](s: S)(f: (S, D, Δ) => Either[M[S], M[Unit]]): (D, Δ) => Trigger[D, Δ]
def untilRightSeq[D, Δ](f: D => Either[M[Unit], M[Unit]]): D => Trigger[D, Δ]
def untilRightSeq[D, Δ](f: (D, Δ) => Either[M[Unit], M[Unit]]): (D, Δ) => Trigger[D, Δ]

Extensions

Extensions

extension [D, Δ](t: Trigger[D, Δ])
def contramap[C, Γ](f: C => D, g: Γ => Δ): Trigger[C, Γ]
extension [D[_], Δ[_, _], I](t: ITrigger[D, Δ, I])
def contramap[C[_], Γ[_, _]](f: [i] => (x$1: C[i]) => D[i], g: [i, j] => (x$1: Γ[i, j]) => Δ[i, j]): ITrigger[C, Γ, I]

Implicits

Implicits

implicit def M: Functor[M]