Note that this is not subsumed by Signal.applicativeInstance because Signal.applicativeInstance requires an ExecutionContext and Effect to work with 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 an ExecutionContext and Effect to work with 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 to resolve ambiguous implicits if the Signal.applicativeInstance is applicable, allowing the Applicative's Functor instance to win.