>   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