Since Str obviously stays Str when you ++ it, I think Num does too.
Let each type decide for itself, but I think most types will not want
to auto-transmogrify themselves to a different type. One exception
is that ++ of an Undef produces Int, unless it was an undefined prototype
of some actual type. So
Str $s;
$s++;
probably increments $s to "A" or some such.
If ++ and -- are really .succ and .pred in disguise (see C++), then
I'm suddenly wondering if the successor of an iterator is the iterator
with one less element on the front. In which case,
for $*IN++ {...}
would read through the iterator. That doesn't quite work unless we also
make it that $($*IN) returns the head of the iterator. So maybe that's
just a bogus idea.
Larry