what may not be clear to everyone in this discussion is that adding a
new object with special properties like the ones suggested for "void"
requires an examination of many places in Maxima.
For example, the instructions for simplifying "void + x" would not be
encoded in the object "void". These are encoded on the property list of
the object "+".
Thus to make "void", or for that matter, inf, und, ind, intervals, etc
work, one has to modify +, *, sin, cos, exp, log, integrate, diff, etc
etc etc.
Now maybe this organization is wrong, but that's the way it is.
(arguing about whether cos(void) should send a "void" message to "cos"
or a "cos" method to "void" does not
offer a solution to "void+infinity+interval(-1,1)")