anchor.diff:           :finally (return-from :assoc nil))))
   
   #-(and clisp (not debug-weak))
  +(defgeneric weak-alist-rassoc (item weak-alist &key test test-not key))
  +#-(and clisp (not debug-weak))
   (defmethod weak-alist-rassoc (item (self weak-alist) &key (test (function eql))
                                 (test-not nil) (key (function identity)))
     (if test-not
  
positive.code:          :finally (return-from :assoc nil))))
  
  #-(and clisp (not debug-weak))
  (defmethod weak-alist-remove-assoc (item (self weak-alist)
                                      &key (test (function eql))
                                      (test-not nil) (key (function identity)))
  
negative.code:          :finally (return-from :assoc nil))))
  
  #-(and clisp (not debug-weak))
  (defgeneric weak-alist-value (item weak-alist &key test test-not))
  #-(and clisp (not debug-weak))
  (defmethod weak-alist-value (item (self weak-alist)
                               &key (test (function eql)) (test-not nil))
    (cdr (weak-alist-assoc item self :test test :test-not test-not)))
  
  #-(and clisp (not debug-weak))
  (defgeneric (setf weak-alist-value) (value item weak-alist &key test test-not))
  #-(and clisp (not debug-weak))
  (defmethod (setf weak-alist-value) (value item (self weak-alist)
                                      &key (test (function eql)) (test-not nil))
  