Quoting Trans <transfire / gmail.com>:

> That's a good point. But we should be clear. First, this is only
> ambiguious for constants. Moreover, the above is equivalent to
> redefining the value of the constant. I.e.
>
>   SomeConstant = Class.new(some_expression)
>
> So it would not matter anyway --in other words, using a
> superclass is pointless when reopening a pre-existent class, so
> this statement must be defining a class called SomeConstant.
> There's really no ambiguity.

Only because you have an a priori idea of what makes sense.

It's easy to insist that a parser should "do what you mean", but try
explaining that to a pushdown automaton...

Try writing some BNF for this part of Ruby's syntax, with your
proposed change.  Then you'll understand.

-mental