This would probably be clearer if LabelCounter had a + method that would always return a new object, and you could do `agg.ScanLeft(new LabelCounter)(_ + _)`. But maybe it's okay as is.