> counter = counter + 1 > sends the message '+' to the object referenced by the variable > 'counter', passing it the argument '1'. Thi object then returns > something appropriate (the next integer is counter is a Fixnum), and > the resulting (new) object is assigned to counter. > counter += 1 > is effectively shorthand for this process. Given that += is a shorthand, then ++counter could be a shorthand for counter += 1, and counter++ could be a shorthand for: proc{xyz=counter;counter+=1;xyz}.call (given that xyz is a distinct block-local variable, or equivalent) or the possibly more appropriate [?]: proc{xyz=counter;counter=counter.succ;xyz}.call disclaimer: I don't advocate the addition of the above features. matju