fixed: (setf (getf place key) value) fails if the value of place is NIL. uses
both (defmethod (setf getf)) and define-setf-expander.