Why haven't Combine took advantage of parameter packs?

Currently, Combine's operator combineLatest only supports up to 4 inputs (Publishers.CombineLatest4). Why haven't Apple took advantage of Swift 5.9 parameter packs feature to allow 5 and more publishers to be combined?

I now have a need to combine 5 publishers, but due to this limitation I have to use something like this to overcome the limitation. And even with this approach, you can't possibly combine 16 publishers together

Are there some fundamental performance considerations which don't allow to do such thing? Surely, the memory use will grow with the number of publishers because CombineLatest buffers the latest value of each publisher. But given that the developers use it wisely it would be very helpful to have

The same goes for all other operators which previously used static typization to overcome Swift v5.8 and earlier limitation (Publishers.Zip4, Publishers.MapKeyPath3, etc.)

Combine is largely a dead framework with near zero investment from Apple over the last few years. Expect nothing.

4 Likes