pub fn pipe<I: Send + 'static, O1: Send + 'static, O2: Send + 'static>( first: impl Runnable<I, O1> + Send + Sync + 'static, second: impl Runnable<O1, O2> + Send + Sync + 'static, ) -> Box<dyn Runnable<I, O2> + Send + Sync>