Alex Gutteridge wrote:
> Though the second class definition for Atom is in a different file. If
> I understand correctly, when this second definition is pulled in,
> every Atom object is magically extended to include accessors for the
> @extra variable. This allows me to extend Atom objects without
> fiddling with the original Atom definition (which is part of a larger
> project and can't be easily editted). This almost seems too simple to
> be true!

Yep, you can reopen classes as often as you like, and add methods to 
existing objects.