 											(ngender-add-package-archive-pair '*ngender-known-package-archives* pair)
 											(ngender-add-package-archive-pair 'package-archives pair) ) ) )
 			( (or (stringp a) (symbolp a)) (ngender-add-package-archive-by-key a) )
-			( t (warn "expected archive name or pair %s" a) ) ) ) )
+			( t (warn "expected archive name or pair %s" a) ) ) )
+	(package-initialize)									; is this needed??
+	)
 
 
 (defmacro ngender-archive (&rest archives)


;; Emacs 27 has assoc-delete-all but we don't so we'll just have to work harder:

(defun ngender-assoc-delete-all (key alist)
	"replace with assoc-delete-all as soon as emacs27 is in common use!!"
	(seq-filter (lambda (x) (equal key (car x))) alist) )

(defun ngender-move-from-to-match (src-symbol dst-symbol match)
	"destructively move first matching element from src to dst; returning dst"


(defun ngender-add-package-archive-pair (symbol new-pair)
	(let* ( (key (car new-pair)) (alist (ngender-symbol-value symbol)) (old-pair (assoc key alist)) )
		(if (equal old-pair new-pair)
			alist
			(when old-pair
				(warn "changing url for %s from %s to %s in %s" key (cdr old-pair) (cdr new-pair) symbol)
				(set symbol (ngender-assoc-delete-all key alist)) )
			(set symbol (cons new-pair (ngender-symbol-value symbol))) ) ) )

(let ( (the-list '*ngender-test-archive-list*)
			 (gnu '("gnu" . "http://elpa.gnu.org/packages/"))
			 (gnu-https '("gnu" . "https://elpa.gnu.org/packages/"))
			 (org '("org" . "https://orgmode.org/elpa/")) )
	(set the-list nil)
	(ngender-test
		`(ngender-add-package-archive-pair ',the-list ',gnu)
		(list gnu) )
	(ngender-test
		`(ngender-add-package-archive-pair ',the-list ',gnu)
		(list gnu) )
	(ngender-test
		`(ngender-add-package-archive-pair ',the-list ',org)
		(list org gnu) )
	(ngender-test
		`(ngender-add-package-archive-pair ',the-list ',gnu-https)
		(list gnu-https org) )
	(makunbound the-list) )

(defun ngender-add-package-archive-by-key (key)
	(let ( (pair (assoc key *ngender-known-package-archives*)) )
