Signal

object Signal extends SignalInstances
Companion
class
trait SignalInstances
trait SignalLowPriorityInstances
class Object
trait Matchable
class Any

Type members

Classlikes

final implicit
class BooleanSignalOps[F[_]](val self: Signal[F, Boolean]) extends AnyVal
final implicit
class SignalOps[F[_], A](val self: Signal[F, A]) extends AnyVal

Value members

Concrete methods

def constant[F[_], A](a: A)(implicit F: Concurrent[F]): Signal[F, A]
def mapped[F[_] : Functor, A, B](fa: Signal[F, A])(f: A => B): Signal[F, B]

Implicits

Implicits

final implicit
def BooleanSignalOps[F[_]](self: Signal[F, Boolean]): BooleanSignalOps[F]
final implicit
def SignalOps[F[_], A](self: Signal[F, A]): SignalOps[F, A]

Inherited implicits

implicit
def applicativeInstance[F[_] : Concurrent]: Applicative[[_] =>> Signal[F, _$23]]
Inherited from
SignalInstances
implicit
def functorInstance[F[_] : Functor]: Functor[[_] =>> Signal[F, _$27]]

Note that this is not subsumed by Signal.applicativeInstance because Signal.applicativeInstance requires a Concurrent[F] since it non-deterministically zips elements together while our Functor instance has no other constraints.

Note that this is not subsumed by Signal.applicativeInstance because Signal.applicativeInstance requires a Concurrent[F] since it non-deterministically zips elements together while our Functor instance has no other constraints.

Separating the two instances allows us to make the Functor instance more general.

We put this in a SignalLowPriorityImplicits trait to resolve ambiguous implicits if the Signal.applicativeInstance is applicable, allowing the Applicative instance to be chosen.

Inherited from
SignalLowPriorityInstances