Object operator := method( r := method( if(call message arguments size != 0, setSlot(call activated rhsName, call evalArgAt(0)) doMessage(call activated body) , m := call message attached call message setArguments(list(m)) call message setAttached(nil) setSlot(call activated rhsName, call sender doMessage(m, call sender)) removeSlot("m") doMessage(call activated body) ) ) getSlot("r") rhsName := call argAt(0) name getSlot("r") body := call argAt(1) getSlot("r") ) Number setSlot("<>", operator(rhs, writeln(self, " <> ", rhs, " = ", self != rhs) self != rhs ) ) 2 repeatTimes( writeln(5 <>(5)) writeln(5 <>(9)) writeln ) 2 repeatTimes( writeln(5 <> 5) writeln(5 <> 9) writeln )