 
 ;; *** Using Lists As Sets
 
+(defun ngender-union-sublists (bags)
+  "return list set union of list of bag lists"
+	(delete-dups (apply #'append bags)) )
+
 (defun ngender-union (&rest bags)
-  "return list set union of list bags"
-	(delete-dups (apply #'append bags)) )
+  "return list set union of list of bag lists"
+	(ngender-union-sublists bags) )
+
+(defun ngender-update-union-list (symbol items)
+  (set symbol (ngender-union-sublists (ngender-symbol-value symbol) items) ) )
 
 (defun ngender-update-union (symbol &rest items)
-  (set symbol (ngender-union (ngender-symbol-value symbol) items) ) )
+  (ngender-update-union-list symbol items) )
 
 ;; *** Managing Path Set Lists
 


(require 'package)

(defvar *ngender-package-archives*
	(ngender-symbol-value 'package-archives '( ("gnu" . "http://elpa.gnu.org/packages/") ) )
	"requested package archives" )

;; improve these with regexp matching!!
(defun ngender-archive-name-p (name) (stringp name))


;; ** Dependencies

;; (require 'jit-lock)	; why?
(require 'cl-lib)
;; for:
;; oddp
