anchor.diff:             (rope-ref (rope-node-right rope)
                       (- i left-count)))))
       (simple-string (aref rope i))
  -    (string (aref rope i))))
  +    (string (aref rope i))
  +    (symbol (aref (symbol-name rope) i))))
   
   (defun rope-write (rope &key
                             (escape *print-escape*)
  
positive.code: (in-package :sycamore)
  
  (deftype rope ()
    `(or string rope-node nil))
  
  (defstruct rope-node
    (count 0 :type non-negative-fixnum)
  
negative.code:   (etypecase rope
      (rope-node (rope-node-count rope))
      (simple-string (length rope))
      (string (length rope))
      (symbol (length (symbol-name rope)))))
  
  (defun %rope-cat (first second)
    (make-rope-node :count (+ (rope-count first)
  