anchor.diff:    (let ((template (first (lquery-funcs::nodes-or-build template)))
           (*package* (find-package package)))
       (alexandria:flatten
  -     (loop for symbol in (sort (get-all-symbols package) #'string-lessp :key (lambda (a) (format NIL "~a" a)))
  -        collect (loop for object in (get-symbol-info symbol)
  -                   for type = (nth 1 object)
  -                   for scope = (nth 2 object)
  -                   for docstring = (nth 3 object)
  -                   for args = (nth 4 object)
  -                   for target = (dom:clone-node template T)
  -                   collect (if (and (not (find symbol exclude))
  -                                    (not (find scope exclude))
  -                                    (not (find type exclude))
  -                                    (not (and (find :missing-docstring exclude) (not docstring))))
  -                               (funcall modifier target object fields)))))))
  +     (loop for symbol in (sort (remove-duplicates (get-all-symbols package)) #'string-lessp :key (lambda (a) (format NIL "~a" a)))
  +           collect (loop for object in (get-symbol-info symbol)
  +                         for type = (nth 1 object)
  +                         for scope = (nth 2 object)
  +                         for docstring = (nth 3 object)
  +                         for args = (nth 4 object)
  +                         for target = (dom:clone-node template T)
  +                         collect (if (and (not (find symbol exclude))
  +                                          (not (find scope exclude))
  +                                          (not (find type exclude))
  +                                          (not (and (find :missing-docstring exclude) (not docstring))))
  +                                     (funcall modifier target object fields)))))))
   
   (defgeneric documentate-object (template object fields)
     (:documentation "Changes the given template node to include all required information stored in object (see get-symbol-info) on the given fields."))
  
positive.code: (defun get-types-of-symbol (symbol)
    "Retrieves a list of all types of objects this symbol can represent."
    (remove NIL `(,(when (symbol-constant-p symbol) :constant)
                   ,(when (symbol-special-p symbol) :special)
                   ,(when (symbol-class-p symbol) :class)
                   ,(when (symbol-macro-p symbol) :macro)
                   ,(when (symbol-generic-p symbol) :generic)
                   ,(when (symbol-function-p symbol) :function))))
  
  (defun get-all-symbols (&optional package)
    "Gets all symbols within a package."
  
negative.code:   (let ((vars (list :name (symbol-name (nth 0 object))
                      :desc (format NIL "~:[~;~:*~a~]" (nth 3 object))
                      :args (if (find (nth 1 object) '(:function :macro :method :generic))
                                (format NIL "~:[()~;~:*~a~]" (nth 4 object))
                                "")
                      :type (format NIL "~a ~a" (nth 2 object) (nth 1 object)))))
      (loop for (key val) on fields by #'cddr
  