----- Original Message -----
> Is the fundamental property of Fixnum that its objects are immutable,
> or that its objects do not have copy semantics? If the former, then
> obviously ++ just isn't viable. If the latter, then it's possible to
> imagine implementations that would allow it.
>
> I know we're not going to see ++ in Ruby in my lifetime. However, I'm
> wondering if this is a necessary restriction on the language, or
> simply on implementation convenience.

I would say that it's a bit of both... immutability is a fundamental
mathematical property of numbers .  That implies that they do not have copy
semantics. Immutability allows Ruby to optimise FixNums to be stored by
value not reference.

E.g. Imagine what would happen if ++ modified the value of a fixnum.  This
code would have different behaviour depending on the magnitude of n.  If n
is small enough to fit into a FixNum, then the function would return n.  If
n is too large to fit into a FixNum, and is therefore a reference to an
Integer on the heap, it would return (x+1)!

def func( n )
    x = n
    y = x
    x++
    y
end

If ++ was defined similarly to +=, then this would not be a problem.  On the
other hand, it would not be an optimisation, and would only exist to make
code more terse.  Is that a good thing?  Personally I don't think so.  I
prefer to type slightly more code if that code is then easier to read and
maintain.  Ruby provides a lot more important convenience elsewhere to make
the ommision of ++ and -- operators insignificant.