pub async fn select4<T1, T2, T3, T4, A, B, C, D>( a: A, b: B, c: C, d: D, ) -> Sel4<T1, T2, T3, T4>where A: Future<Output = T1>, B: Future<Output = T2>, C: Future<Output = T3>, D: Future<Output = T4>,