> Private methods may not be called with an explicit receiver: they are
> always called with 'self'. This enforces privacy: they have to be
> called within the context of the current object.
> 
> At the top level, methods are added to Object. However, they 
> are added 
> as private methods. This means that they may not be called with a
> receiver: they always have a receiver of 'self'. Partly this is a
> practical thing: these methods are probably intended to be called as
> functions, and so adding a receiver would be silly. Putting them in
> Object also makes them global, so they're available
> everywhere. Finally, stopping them from being called with a receiver
> stops you doing strange things by mistake. 

Thanks for all the sample code -- that helps a lot.

My assumption coming into this was as follows: if I add a method to Object,
it must be public because I can now call it from anywhere. So if I add self
as the receiver, that should be an equivalent call, but now it's suddenly
private. If it's private how am I able to make the call without the self
receiver?

Because Object is the root Object, right? It's private, but I'm within
Object so I have access to it. Is this correct?


> See you Wednesday?

Yep. I'll be there.

Chris