It may be valuable to publish this at some point, but for now we’re treating it like the internal reduce in Clojure. Really, `NSFastEnumeration` does all the heavy lifting there; this is just the wiring to call the reducing block. This is somewhat different from clojure, where internal reduce appears to be the primary means of traversal (as befits a functional language).