(defun categorize-symbols (paths package)
(mapcar (lambda (assoc)
(let ((home (car assoc))
- (symbols (sort (mapcan (lambda (sym)
- (multiple-value-bind
- (symbol foundp)
- (find-symbol (symbol-name sym)
- package)
- (and foundp (list symbol))))
- (cdr assoc))
- #'string< :key #'symbol-name)))
+ (symbols (delete-duplicates
+ (sort (mapcan (lambda (sym)
+ (multiple-value-bind
+ (symbol foundp)
+ (find-symbol
+ (symbol-name sym)
+ package)
+ (and foundp (list symbol))))
+ (cdr assoc))
+ #'string< :key #'symbol-name))))
(cons home (mapcar (lambda (symbol)
(cons symbol (categorize symbol)))
symbols))))