anchor.diff:  
   
   (define-condition invalid-op-error (invalid-expansion-error) ())
  +(define-condition invalid-op-vars-error (invalid-expansion-error) ())
   (define-condition invalid-arg-error (invalid-expansion-error) ())
   (define-condition invalid-var-error (invalid-expansion-error) ())
   
  
positive.code:   (check-uri (char= #\- (read-char stream))
               invalid-op-error
               "operator must start with '-'.")
    (append (list (intern-op (read-op stream))
                  (read-arg stream))
            (read-vars stream)))
  
  
  (defun read-expansion (stream)
    (declare (type stream stream))
    (if (char= #\- (peek-char nil stream))
        (read-operator stream)
        (read-var stream)))
  
  
  (defun read-uri-template (stream &optional recursive-p)
  
negative.code:        (defconstant ,name ,value))))
  
  
  (define-reader read-arg
      :allowed-char (lambda (char)
                      (declare (type character char))
  