`(eval-when (:compile-toplevel :load-toplevel :execute)
(let ((acons (assoc ',name *policy-dependent-qualities*))
(item (make-policy-dependent-quality
:name ',name
:expression ',expression
:getter (lambda (policy) (policy policy ,expression))
`(eval-when (:compile-toplevel :load-toplevel :execute)
(let ((acons (assoc ',name *policy-dependent-qualities*))
(item (make-policy-dependent-quality
:name ',name
:expression ',expression
:getter (lambda (policy) (policy policy ,expression))
(if acons
(setf (cdr acons) item)
(setf *policy-dependent-qualities*
(nconc *policy-dependent-qualities* (list `(,',name . ,item))))))
(if acons
(setf (cdr acons) item)
(setf *policy-dependent-qualities*
(nconc *policy-dependent-qualities* (list `(,',name . ,item))))))