(asdf:load-system :closer-mop) (defclass always-bound-class (standard-class) ()) (defmethod closer-mop:validate-superclass ((class always-bound-class) (superclass standard-class)) t) (defclass always-bound-slot-definition (closer-mop:standard-slot-definition) ()) (defclass always-bound-effective-slot-definition (closer-mop:standard-effective-slot-definition always-bound-slot-definition) ()) (defmethod closer-mop:effective-slot-definition-class ((class always-bound-class) &rest initargs) (declare (ignore initargs)) (find-class 'always-bound-effective-slot-definition)) (defmethod closer-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." (closer-mop:slot-definition-name slotd) object)) (defclass test-always-bound-class () ((slot :initarg :slot)) (:metaclass always-bound-class)) (slot-makunbound (make-instance 'test-always-bound-class :slot 42) 'slot)