Subscriptions, Cancellations and `onNext`/`onError` should be referentially transparent. We should return an effect type.