<div dir="ltr">This changeset changes Collection>>#count: to be simpler and faster (with an Array of size 10000 I see a 35% speedup), and implements faster Bag>>#count: and Bag>>#collect: that avoids evaluating the block on multiple occurrences of the same element.<div><br></div><div>Both Bag>>#count: and Bag>>#collect: assume that the block is a function (i.e., returns the same result when evaluated twice on the same element). I think this is a fair assumption, and anyway we have the same assumption in Bag>>#select: (which I wrote in 1998, apparently).</div></div>