-(define-hyperobject person ()
- ((first-name :type string :reference find-person-by-last-name)
- (last-name :type string)
- (dob :type integer :initform 0 :format-func format-date)
- (resume :type cdata)
- (addresses :subobject t))
+
+(defclass person (hyperobject)
+ ((first-name :type string :initarg :first-name :reader first-name)
+ (last-name :type string :initarg :last-name :reader last-name
+ :reference find-person-by-last-name)
+ (dob :type integer :initarg :dob :reader dob :print-formatter format-date)
+ (resume :type cdata :initarg :resume :reader resume)
+ (addresses :initarg :addresses :reader addresses :subobject t))
+ (:metaclass hyperobject-class)
+ (:default-initargs :first-name nil :last-name nil :dob 0 :resume nil)
+ (:print-slots first-name last-name dob resume)