Yes, tuple of size 4 is very limitting. The reason is probably lack of dependent types in Rust (aka const generics here), so you don't have any simple way of implementing something which is generic over tuple size. In this case it is just defined for every T which is implementing TupleCollect which I actually don't see in itertools (I don't have much time to go deep into this). I assume that TupleCollect is just defined for tuples of up to four elements, all of same type.