Need to explain in the readme what it does, and what for.

Why would I need such an abstraction? What is the cost?

Why is that any better than calling the function with a single argument in the first place?

I assume here it is maintaining a vector of futures and and a sibling vector of input values. And when this vector reaches the window size or something like that, it calls the original function with must returns a vector of results, which are then used to resolve the futures.

Thanks for the feedback, I've updated the README!