 (cl-defun hoarder:add-to-list (var elem)
   (if (vectorp elem)
       (colle:map
+       ;; seq-each
        (lambda (e) (add-to-list var e))
        elem)
     (add-to-list var elem)))


(cl-defun hoarder:package-compare-fn (p1 p2)
  (cl-labels ((comp (n)
                (hoarder:on #'cl-equalp
                      (lambda (p) (glof:get p n))
                      p1
                      p2)))
    (and (comp :name)
       (comp :origin))))


;;;; utilily functions
(cl-defun hoarder:concat-path (&rest parts)
  (colle:foldl (lambda (a b) (expand-file-name b a))
            "/"
            parts))

(cl-defun hoarder:message (fmt . texts)
  (if noninteractive
      (princ (apply #'format (concat fmt "\n") texts))
    (apply #'hoarder:log fmt texts)
