(defstruct circ-print nil
  a
  (:method print (me stream pretty-p)
    (put-string "[[" stream)
    (print me.a stream pretty-p)
    (put-string "]]" stream)))

(defvarl x (let* ((l (list "a"))
                  (c (new circ-print a l)))
             (list l c)))

(let ((*print-circle* t))
  (prinl (new circ-print a "a"))
  (prinl x))