I just had occasion to look at the code for antid, which includes the
locution (simplified, here)
antid(..) := block( [ ..., killer, ...],
...
killer(z) := ....,
....)
Presumably the author thought he (or she) was defining a local function
named killer. In fact, killer is just as global as any other function.
It is defined the first time antid is called. And it is defined again
each time antid is called.
Probably the author should use "local".
I would have preferred to send this note to the author but the author
did not sign the file :(
It would be nice if the author of this (as well as other contributions)
were identified in the text. Also in this case it would be nice to
explain somewhere why this program exists. I think it is because it can
find the antiderivative (i.e. symbolic indefinite integral) of some
expressions that are not currently handled by the built-in integrate
command. I recommend that the manual and the demo provide such an
explanation.
RJf