this will be no faster than doing `items.reduceLeft(plus(_, _))` right? .add is going to do log N updates to the tree, and the point of the update was to make that cost O(1).

For these micro optimizations, we need benchmarks. Can you do a quick comparison? I think the trick I was suggesting will be useful in minimizing the cost of that loop.