(defmethod backtrack-slot ((frame standard-session-frame) object slot-name &optional (copyer #'identity))
(backtrack frame
(make-instance 'place
:getter (lambda ()
(if (slot-boundp object slot-name)
(slot-value object slot-name)
+unbound-value+))
:setter (lambda (v)
(if (eql +unbound-value+ v)
(slot-makunbound object slot-name)
(setf (slot-value object slot-name) v)))
:copyer copyer
:form `(slot-value ,object ,slot-name))))Source Context