Signal

object Signal
Companion:
class
Source:
Signal.scala
class Object
trait Matchable
class Any
Signal.type

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]]
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 (hidden)
Source:
Signal.scala