Gavin,

On Sunday, June 27, 2004, at 10:40  PM, Gavin Sinclair wrote:

> Austin Ziegler wrote:
>> The only valuable form of object replacement, IMO, is
>> replacing a proxy object with a real object.
>
> That sounds about right to me.  Aren't there two separate issues here?
> 'become', to me, means "become another **object**", not "change your
> class".

You're right, there was a bit of confusion.  I just reviewed evil.rb, 
#become swaps instances of objects, it doesn't fiddle with the object's 
class.  The two are really quite different.  :-)

> I don't even know what
>
>   x = X.new
>   x.class = Y
>
> is supposed to mean.

This is the part that I find absurd.  A class isn't just a collection 
of methods (as a Module is); it's also the lifecycle of initialize.  
That's the reason I find #class= to be harmful [ruby-talk 104494]

>   But I do understand the idea behind this:
>
>   x = X.new
>   y = Y.new
>   x.become y
>
> Are the two ideas really one and the same in this thread?

They shouldn't be.  I certainly mixed them up.  My apologies; to be 
clear, my concern is with #class= and not #become.

Cheers,

Patrick