Task<B> redeemWith<B>(Function1<Object, Task<B>> recover, Function1<A, Task<B>> bind) => attempt().flatMap((a) => a.fold(recover, bind));