Doing a sumsBuffer.toTraversable is the same as doing a sumsBuffer.toStream which itself shouldn't materialize the whole iterator. Unless I'm mistaken, UnrolledBuffer inherits this definition of toTraversable: https://github.com/scala/scala/blob/v2.10.2/src/library/scala/collection/TraversableLike.scala#L94 but perhaps your suggestion will make this a moot point.