Description
The Scrunch version of combine accepts a function Iterable[V] => V . This causes a lot of unexpected behaviour because the iterable that is wrapped is actually a SingleUseIterable, and much of Scala's collection function implementations actually try and access the underlying iterator multiple times if they know that it's possible.
The fix implemented here is to call iterator() on the underlying SingleUseIterable and expose it instead as a TraversableOnce.