 	"append candidate directory paths to end of directory set bound to symbol"
 	(funcall #'ngender-add-paths symbol dirs t) )
 
-;; ** Emacs Repository Support
+;; ** Emacs Package Archive Repository Support
 
 (require 'package)
 

			(if (funcall type-test p) path
				(ngender-warn p type-name '(init)) ) ) ) )

(defun require-file (path &optional parent) (require-file-path path #'file-regular-p 'file parent) )
(defun require-dir (path &optional parent) (require-file-path path #'file-directory-p 'directory parent) )

;; ** Fancy Emacs Load-Path Support


					(load module) ) ) ) ) )	; module can pull features off loading list

(defun ngender-require (module &rest features)
	"load module with required features unless already done - used by macro ngender - order of features matters"
	(if-let ( (module (ngender-normalize-module module)) )
		(let ( (features (seq-filter #'consp (mapcar #'ngender-normalize-feature features))) )
			(unless (member (cons module features) *ngender-modules-loaded*)
				(apply #'ngender-load (cons module features)) ) ) ) )

(defmacro ngender (&rest module+features)
	(cons 'ngender-require (mapcar (lambda (x) (list 'quote x)) module+features)) )

;; (macroexpand-1 '(ngender foo))
;; (macroexpand-1 '(ngender foo this that))

(defmacro ngender-provide (module)
	(list 'ngender-provide-function (list 'quote module)) )

;; (macroexpand-1 '(ngender-provide foo))

(defmacro ngender-forget (module)
	"fagedaboutit"
	(if-let ( (module (ngender-normalize-module module)) )
		`(progn
			 (ngender-forget-loading ,module)
			 (ngender-forget-loaded ,module) )
		`(ngender-warn 'module "a module name") ) )

;; (macroexpand-1 '(ngender-forget foo))

;; ** Provide

