The type can simply be parameterized on the value/error types. The following algorithms have receivers that are parameterized on the sender: - [ ] `split` - [ ] `ensure_started` - [ ] `stopped_as_[xxx]` - [ ] `on` - [ ] `into_variant`