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