AsyncResult<S, E> represents an asynchronous computation.
AsyncResult<S, E>
typedef AsyncResult<S, E> = Future<Result<S, E>>;