StreamClass.zipWith<U extends readonly unknown[], R>(fn: (...values: [K in keyof U]: Exclude<U[K], AnyFailure>) => R): StreamClass<Exclude<R, AnyFailure>, Extract<U[number] | R, AnyFailure>>
zip plus a combiner — Elixir's Stream.zip_with; the tuple arrives spread.
await Stream.zipWith([[1, 2], [10, 20]], (a, b) => a + b).collect(); // [11, 22]
StreamClass<Exclude<R, AnyFailure>, Extract<U[number] | R, AnyFailure>>