pub(crate) type Promise<T> = Receiver<Result<T, Error>>;
pub(crate) struct Promise<T> { /* private fields */ }