Robert Dodier - 2012-12-14

I looked at the code for evaluating predicates (src/compar.lisp) and I can't see any simple way to fix this problem.

It could be fixed either by reworking the predicates code (e.g. making Boolean operators simplifying instead of evaluating), or by changing Maxima's default scope rule from dynamic to lexical. Both of those are plenty of work. Probably the slightly easier one is to rework the predicate code.