anchor.diff:       (unless collected
          (setf res (list* id new res)))
        (return res))))
  +
  +(defmacro set-plist-val! (new id place &key (test #'equalper) (key #'identity))
  +  `(setf ,place
  +    (set-plist-val ,new ,id ,place :test ,test :key ,key)))
   
   (defun %slot-readers (slots)
     (iter (for slot in (ensure-list slots))
  
positive.code:           (T (collect k into plist)
               (collect v into plist)))
      (finally (return (values plist removed)))))
  
  (defmethod set-plist-val (new id list &key (test #'equalper) (key #'identity))
    (iter
  
negative.code:    #:equalper
     #:plist-val
     #:rem-plist-val
     #:rem-plist-val!
     #:set-plist-val
     #:set-plist-val!
     #:call-if-applicable
     #:call-applicable-fns
  
  