declare refuses subscripted variables and other non
(%i25) declare (foo, integer);
Improper argument to declare:
declare should at least recognize variables with
literal subscripts (e.g. foo, bar, baz).
declare might also recognize other kinds of expressions
such as variable subscripts (e.g. foo[n]), unevaluated
function calls (e.g. foo(x)), or maybe arbitrary
expressions (e.g. sin(foo(x) + bar[y]) + baz).
At present declarations are stored in the property list
of the symbol for the declared symbol. I don't know how
we would modify that to store declarations for nonatoms.