From: transfire@... Date: 2006-07-07T03:17:27+09:00 Subject: Achieving Equality I have this fancy class: # Read from one and write to another. class RWDelegator def initialize( read, write ) @read = read @write = write end def inspect "#{@read.call.inspect}*" end def ==( other ) @read.call == other end def method_missing( meth, *args, &blk ) read = @read.call ditto = read.dup result = ditto.send( meth, *args, &blk ) if ditto != read result = @write.call.send( meth, *args, &blk ) end result end end I'm can't achieve equlity when: a, b = 1, 1 r, w = lambda{ a }, lambda{ b } rwd = RWDelegator.new( r, w ) rwd == a #=> true a == rwd #=> false Any hope? T.