"Inspect this code. Here we're creating a new OrderedCollection,
and asking it to add 1, then add 2, then add 3, then finally
return yourself" (OrderedCollection new) add: 1; add: 2; add: 3;
yourself. "This is normally not written on one line, but is
written like this:" Here, we're asking the class (remember, this
is a blueprint for creating objects) OrderedCollection to create
a new collection. Then we're asking the new collection to add 1
to itself. Then we're asking the same new collection to add 2 to
itself, then 3, and then finally we're asking the collection to
return itself. You normally don't have to send that last message
to an object, as the default return is the object itself (we
call this the receiver of the the messages), but the message
add: returns the parameter you're passing, so in this case, if
we want to see the OrderedCollection that we're creating, we
need to ask it to return itself as the last message send. This
may be a little confusing; I showed the above snippet as it
explicitly creat