#+sbcl (in-package #:sb-pcl) #+sbcl (progn (defmethod add-reader-method ((class slot-class) generic-function slot-name slot-documentation source-location) (add-method generic-function (make-a-method 'standard-reader-method () (list (let ((name (class-name class))) (if (and name (symbolp name)) name 'object))) (list class) (make-reader-method-function class slot-name) (or slot-documentation "automatically generated reader method") :slot-name slot-name :object-class class :method-class-function #'reader-method-class 'source source-location))) (defmethod add-writer-method ((class slot-class) generic-function slot-name slot-documentation source-location) (add-method generic-function (make-a-method 'standard-writer-method () (list 'new-value (let ((name (class-name class))) (if (and name (symbolp name)) name 'object))) (list *the-class-t* class) (make-writer-method-function class slot-name) (or slot-documentation "automatically generated writer method") :slot-name slot-name :object-class class :method-class-function #'writer-method-class 'source source-location))) (defmethod add-boundp-method ((class slot-class) generic-function slot-name slot-documentation source-location) (add-method generic-function (make-a-method (constantly (find-class 'standard-boundp-method)) class () (list (let ((name (class-name class))) (if (and name (symbolp name)) name 'object))) (list class) (make-boundp-method-function class slot-name) (or slot-documentation "automatically generated boundp method") :slot-name slot-name 'source source-location))))