Future<Either<T, R>> flatMapLeftAsync<T>( FutureOr<Either<T, R>> Function(L) f, ) => fold( (e) async => await f(e), (r) async => Either.right(r), );