Another thing I'm thinking is that it's a bit weird to have the arity of the callback influence the computational complexity of the function. A more explicit differentiation might make this less sneaky and therefore less prone to unwanted behavior. What about having `.run()` (which would aggregate the results) and `.runError()` (which would just produce the error)?