(defun list-with-length-p (x)
(values (ignore-errors (list-length x))))
-;;; not used in 0.7.8, but possibly useful for defensive programming
+;;; not used in 0.7.8, but possibly useful for defensive programming
;;; in e.g. (COERCE ... 'VECTOR)
;;;(defun list-length-or-die (x)
;;; (or (list-length x)
;;; ;; not clear how to do this best:
-;;; ;; * Should this be a TYPE-ERROR? Colloquially that'd make
+;;; ;; * Should this be a TYPE-ERROR? Colloquially that'd make
;;; ;; lots of sense, but since I'm not sure how to express
;;; ;; "noncircular list" as a Lisp type expression, coding
;;; ;; it seems awkward.
;;; ;; be doing him a favor by printing the object here.
;;; ;; -- WHN 2002-10-19
;;; (error "can't calculate length of cyclic list")))
+
+;;; This is used in constructing arg lists for debugger printing,
+;;; and when needing to print unbound slots in PCL.
+(defstruct (unprintable-object
+ (:constructor make-unprintable-object (string))
+ (:print-object (lambda (x s)
+ (print-unreadable-object (x s)
+ (write-string (unprintable-object-string x) s))))
+ (:copier nil))
+ string)