This particular `def apply` signature with inferred return type was not returning `ZippedValues[T, T]`, but instead was returning a monster type which expanded `ZippedValues[T, T]`, with the `def foreach` definitions seemingly included within the extended type specification, as defined in `new ZippedValues[T, T]{ ......... }`. 

May be placebo and hard to tell d/t trial-to-trial variability, but I think this shaved off a few seconds from the typing phase of compiling this file.