The main issue I have with automap is that the limits of the automapping are implicit. I can write
a[*] + 1
and
a[*] + b[*]
and it works as expected, but when I try
a[*] + b[*] + 1
it suddenly breaks since the "+ 1" part is outside the implicit limits of the automap. The limits are what they are just because the abstract syntax tree happen to be built a certain way. That is icky. They should be stated explicitly with a special syntax. When this dubious feature was discussed way back in the internal lyskom at RIS, I suggested
(a[*] + b[*] + x)[/]
where the idea behind "[/]" was that it looked somewhat like the inverse of "[*]". It's the full expression in the parenthesis before it that is automapped. No more, no less. So if x shouldn't be added to each element but instead be added to the end of the result array, it'd be
(a[*] + b[*])[/] + x
IIRC, this idea was turned down because it caused a bit more bulky syntax in the simplest cases, and because implementing it would require a considerably more complicated solution. Now it might be difficult to amend this for compatibility reasons.