which shows the fairly rare occasion to use ${NAME}${NAME} instead of simply $NAME$NAME - to separate the variable name from any letter following. In fact, if you didn't have a trailing / on the definition of ROOT, I'd be writing
foo program-x "attached is the software" "please read the accompanying manual"
then foofoo will see -x as $1, and the two strings as $2$2 and $3 $3 (which you should access as "$2""$2" and "$3""$3" for obvious reasons). If, however, you want to pass this entire set of parameters to another script, the following will suffer horrible splitting on all the spaces:
It's kinda entertaining to experiment with other effects of $@$@ when not used as "$@""$@" but you'll quickly find out it's not actually that entertaining... it is merely a special case that solves a major problem.