The thing that was actually being tickled by the subscript in this

example was ELEMXPT. Unfortunately, I think if you fix that to deal

correctly with subscripted variables... you get a bind stack

overflow. Eugh.

So I went for a stupider fix in SININT itself, where we replace

integrate (f(x[y]), x[y])

by

integrate (f(z), z)

(where z is a gensym, obviously) and then substitute back at the end. I

think this is probably a much more robust approach than playing

whack-a-mole with all the bits of the integration code that assume

variables are atomic.

I don't replace all non-atomic expressions in this way. Presumably this

replacement would already exist if there weren't some integration tricks

we can do that are cleverer than just substituting.