anchor.diff:    "
     ;; throws errors to remove attributes that dont exist
     ;; dont care about that
  -  (let ((uri (attribute-uri attribute))
  -	(name (prepare-attribute-name attribute)))
  -    (when (dom:has-attribute-ns elem uri name)
  -      (dom:remove-attribute-ns elem uri name)))
  +  (iter (for e in (alexandria:ensure-list elem))
  +    (let ((uri (attribute-uri attribute))
  +          (name (prepare-attribute-name attribute)))
  +      (when (dom:has-attribute-ns e uri name)
  +        (dom:remove-attribute-ns e uri name))))
     elem)
   
   (defun remove-attributes (elem &rest attributes)
  
positive.code:       el
        (dom:owner-document el)))
  
  (defun add-children (elem &rest kids)
    "adds some kids to an element and return that element
      alias for append-nodes"
    (iter (for kid in (flatten-children kids (document-of elem)))
  	(dom:append-child elem kid))
    elem)
  
  (defun insert-children (elem idx &rest kids)
  
negative.code: 
  (defun set-attribute (elem attribute value)
    "Sets an attribute and passes the elem through, returns the elem"
    (iter (for e in (alexandria:ensure-list elem))
      (dom:set-attribute-ns
       e
       (attribute-uri attribute)
       (prepare-attribute-name attribute)
       (prepare-attribute-value value)))
    elem)
  
  (defun remove-attribute (elem attribute)
  