pub trait SenderExt<T>:
Send
+ Sync
+ 'static {
// Required method
fn send(&self, t: T) -> Result<()>;
// Provided method
fn map_input<U, F>(self, func: F) -> MapSender<Self, F>
where Self: Sized,
F: Fn(U) -> T { ... }
}