There's a bug in cl-seq's `union' implementation.

The second clause in its `cond' tests CL-LIST1 and CL-LIST2 for
`equal'ity, not taking :test into account:

    ((equal cl-list1 cl-list2) cl-list1)

So, for example:

    (union '("foo") '("foo") :test '=)  =>  ("foo")

But:

    (union '("foo") '("bar") :test '=)  =>  **error**



-tlh