-(define-class-slot :title)
-(define-class-slot :print-slots)
-(define-class-slot :description)
+(defmacro define-slot-option (slot-name)
+ #+lispworks
+ `(defmethod clos:process-a-slot-option ((class hyperobject-class)
+ (option (eql ,slot-name))
+ value
+ already-processed-other-options
+ slot)
+ (if (null (cdr value))
+ (list option (car value))
+ (list option `',value)))
+ #-lispworks
+ (declare (ignore slot-name))
+ )
+
+(define-class-option :title)
+(define-class-option :print-slots)
+(define-class-option :description)
+
+(define-slot-option :ho-type)
+(define-slot-option :print-formatter)
+(define-slot-option :subobject)
+(define-slot-option :reference)
+(define-slot-option :description)
+