Task<Either<L, R2>> traverseTask<R2>(Task<R2> f(R r)) => fold((l) => Task.delay(() => left(l)), (R r) => f(r).map(right));