seems like this logic should live in StatefulSummer. Something like `sumAll(iter: TraversableOnce[T]): Option[T]`