Does this behavior make sense?



The function depends should  disallow things like depends(a,[b,b,b]).  It 
should also
signal an error for things like depends(a,[b,a]) :

(C1) depends(a,[b,a]);
(D1)                               [a(b, a)]
(C2) diff(a,b);

Error: Bind stack overflow.

Other:

(1) The depends mechanism is often simple to use --- when it isn't,  try 
using pdiff.

(2) The NSet setify function returns (as the name implies)  a set and not 
a list

(C3) load("l:/nset-1.2.03/nset.lisp");
(D3)                       l:/nset-1.2.03/nset.lisp
(C4) setify([b,b,b]);
(D4)                                {b}
(C5) 

If you are using NSet  to do (as suggested by Alexander) 

(C2) depends(a,setify([b,b,b]));
(D2)                                [a(b)]

you'll be in trouble because depends doesn't allow a set as its second 
argument 
(but it ought to require a set!).

Barton