(defclass always-bound-class (standard-class) ()) (defmethod sb-mop:validate-superclass ((class always-bound-class) (superclass standard-class)) t) (defclass always-bound-slot-definition (sb-mop:standard-slot-definition) ()) (defclass always-bound-effective-slot-definition (sb-mop:standard-effective-slot-definition always-bound-slot-definition) ()) (defmethod sb-mop:effective-slot-definition-class ((class always-bound-class) &key) (find-class 'always-bound-effective-slot-definition)) (defmethod sb-mop:slot-makunbound-using-class ((class always-bound-class) object (slotd always-bound-effective-slot-definition)) (error "The slot ~S must be always bound in object ~S." (sb-mop:slot-definition-name slotd) object)) (defclass test-class () ((slot :initarg :slot)) (:metaclass always-bound-class)) (slot-makunbound (make-instance 'test-class :slot 42) 'slot)