This is OK (I guess)
(%i1) limit(true);
(%o1) true
but limit(false) is weird:
(%i2) limit(false);
(%o2) lim(false,FOO,0)
No doubt, limit(?foo) is buggy:
(%i3) limit(?foo);
(%o3) 0
Actually, limit(true) is weird, but unlike limit(false),
something cleans up the mess that limit makes:
(%i4) :lisp(trace $limit);
($LIMIT)
(%i4) limit(true);
1> ($LIMIT T)
2> ($LIMIT T FOO 0 $PLUS)
<2 ($LIMIT ((%LIMIT) T FOO 0 $PLUS))
2> ($LIMIT T FOO 0 $MINUS)
<2 ($LIMIT ((%LIMIT) T FOO 0 $MINUS))
<1 ($LIMIT ((%LIMIT) T FOO 0))
(%o4) true
How did ((%limit) t foo 0) get changed to $true?
Barton