+
+
+(defclass hyperobject ()
+ ()
+ (:metaclass hyperobject-class))
+
+
+(defmethod print-object ((obj hyperobject) (s stream))
+ (print-unreadable-object (obj s :type t :identity t)
+ (let ((fmt (make-instance 'hyperobject::textformat)))
+ (apply #'format
+ s (funcall (hyperobject::obj-data-fmtstr fmt) obj)
+ (multiple-value-list
+ (funcall (funcall (hyperobject::obj-data-value-func fmt) obj) obj))))))
+