calling defmspec functions in Lisp



I've defined a Maxima function union by

(defmspec $union (a) blah blah blah)

In Maxima, it works as expected with any number of arguments:

(C1)  union([a,b,c],[x], [y]);

[a,b,c,x,y]

My question is how do I call union from  using Lisp?  For example,
if I attempt to define a function $symmdifference by

(defun $symmdifference (a b)
  (cond ((and ($listp a) ($listp b))
      ($union ($setdifference a b) ($setdifference b a)))
     (t (merror "Both arguments to SYMMDIFFERENCE must be lists"))))

then $union isn't called correctly (the function $setdifference is okay).

Thanks in advance,

Barton