pub fn spawn<T: Send + 'static>(
    future: impl Future<Output = T> + Send + 'static
) -> JoinHandle<T>