Hi,

"z".succ == "aa", but "z" > "aa".
As a consequence, ("z".."aa").size == 0 instead of 2.
(Same with upto method, for that matter.)

The reason is clear: it's "unnatural" succ definition.
(BTW, "\000".succ == "\001\001". Wow.)

IMHO, this has been conceived as the method for "plain letters",
not for arbitrary strings. If so, isn't this a subject to discuss?

Does the language need a special subclass (encoding-dependent?)
for such strings and/or methods?
How to cope with punctuation, e.g. should we expect "a:".succ == "b:"?

Sergey Abel