Array.reduce lifted over the container: reduce.all demands every item succeed; reduce.some forgives the items that fail and keeps the reductions that land. Result.Async.reduce does the same for asynchronous results.
Result.reduce.all([success(1), success(2)], (a, b) => success(a + b), success(0)).orNull(); // produces: 3Result.reduce.some([success(1), failure('x')], (a, b) => success(a + b), success(0)).orNull(); // produces: 1 Copy
Result.reduce.all([success(1), success(2)], (a, b) => success(a + b), success(0)).orNull(); // produces: 3Result.reduce.some([success(1), failure('x')], (a, b) => success(a + b), success(0)).orNull(); // produces: 1
Array.reduce lifted over the container: reduce.all demands every item succeed; reduce.some forgives the items that fail and keeps the reductions that land. Result.Async.reduce does the same for asynchronous results.