pub trait AsyncSingleArgFn<A>: Fn(A) -> Self::Future { type Future: Future<Output = <Self as AsyncSingleArgFn<A>>::Output> + Send; type Output; }