- (setf
- (slot-value slotd 'getter)
- #'(lambda (object)
- (prog1 (user-data object slot-name))))
- (setf
- (slot-value slotd 'setter)
- #'(lambda (value object)
- (setf (user-data object slot-name) value)))
- (setf
- (slot-value slotd 'boundp)
- #'(lambda (object)
- (user-data-p object slot-name))))
+ (unless (slot-boundp slotd 'getter)
+ (setf
+ (slot-value slotd 'getter)
+ #'(lambda (object)
+ (prog1 (user-data object slot-name)))))
+ (unless (slot-boundp slotd 'setter)
+ (setf
+ (slot-value slotd 'setter)
+ #'(lambda (value object)
+ (setf (user-data object slot-name) value))))
+ (unless (slot-boundp slotd 'boundp)
+ (setf
+ (slot-value slotd 'boundp)
+ #'(lambda (object)
+ (user-data-p object slot-name)))))