?great(box(x+t),-box(x+t)) => true
?great(-box(x+t),box(x+t)) => true
It should never be true that ?great(x,y)=?great(y,x)=true if x#y
This bug causes the following bug:
sin(box(x+t)) => stack overflow
The solution (for now at least) is to remove these two lines from great:
((member (caar x) '(mbox mlabox) :test #'eq) (great (cadr x) y)) ((member (caar y) '(mbox mlabox) :test #'eq) (great x (cadr y)))
If I remember correctly, I added those lines a long time ago thinking it was trivially obvious that they were correct. :-(
This also fixes bug 2012 Lisp stack overflow with dpart
I've applied the bug fix as commit 1aec495. Closing this report as fixed.