(with-slots ,(mapcar #'list public private) ,inst-var
(if *print-escape*
(print-unreadable-object (,inst-var ,streamvar :type t)
- (format stream "~@<~@{~S ~@_~S~^ ~_~}~:>"
+ (format ,streamvar "~@<~@{~S ~@_~S~^ ~_~}~:>"
,@(mappend #'list keys public)))
(block ,code ,@body))))
,@(and export `((export '(,class-name ,constructor-name
;; Important instruction classes.
-;; HACK: Some of the slot names we'd like to use are external symbols in our
-;; package or the `common-lisp' package. Use gensyms for these slot names to
-;; prevent them from leaking.
-
(definst var (stream :export t) (name %type &optional init)
(pprint-logical-block (stream nil)
(pprint-c-type type stream name)