Signal

object Signal extends SignalLowPriorityImplicits
Companion
class
trait SignalLowPriorityImplicits
class Object
trait Matchable
class Any

Type members

Classlikes

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

Value members

Concrete methods

def constant[F[_], A](a: A)(F: Async[F]): Signal[F, A]

Implicits

Implicits

implicit def applicativeInstance[F[_]](F: Concurrent[F]): Applicative[[_] =>> Signal[F, _$4]]

Inherited implicits

implicit def functorInstance[F[_]](`evidence$6`: Functor[F]): Functor[[_] =>> Signal[F, _$12]]

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
SignalLowPriorityImplicits