anchor.diff:       (defvar ,name (make-instance ',name))))
   
   (defclass lexeme (parser-symbol) ())
  -
  -(defmethod print-object ((lexeme lexeme) stream)
  -  (print-unreadable-object (lexeme stream :type t :identity t)
  -    (format stream "~s ~s" (start-offset lexeme) (end-offset lexeme))))
   
   (defclass nonterminal (parser-symbol) ())
   
  
positive.code:                               (finish (line-end-offset line) start-symbol))
                               ((and (typep symbol 'literal-object-mixin))
                                (finish (start-offset symbol) symbol
                                        (or (get-drawing-options highlighting-rules syntax symbol)
                                            (make-drawing-options :function (object-drawer)))))
                               ((and (> (start-offset symbol) offset)
                                     (not (drawing-options-equal (or symbol-drawing-options
  
negative.code:    (preceding-parse-tree :initform nil :reader preceding-parse-tree)
     (parser-state :initform nil :initarg :parser-state :reader parser-state)))
  
  (defmethod print-object ((object parser-symbol) stream)
    (print-unreadable-object (object stream :type t :identity t)
      (format stream "~s ~s" (start-offset object) (end-offset object))))
  
  (defclass literal-object-mixin () ()
    (:documentation "Mixin for parser symbols representing
  literal (non-character) objects in the buffer."))
  