anchor.diff:  (defun read-var (stream)
     (declare (type stream stream))
     (let* ((name (intern (string-upcase (read-varname stream)))))
  -    `(or (ignore-errors ,name)
  -         ,(if (eat-char stream #\=)
  -              (read-vardefault stream)
  -              ""))))
  +    (if (eat-char stream #\=)
  +        `(uri-template-var ,name
  +                           ,(read-vardefault stream))
  +        `(uri-template-var ,name))))
   
   
   (defun read-vars (stream)
     (declare (type stream stream))
     (loop
        for var = (read-var stream)
  -     for next-char = (peek-char nil stream)
  +     for next-char = (read-char stream)
        collect var
        while (char= #\, next-char)
  -     finally (check-uri (char= #\} (read-char stream))
  +     finally (check-uri (char= #\} next-char)
                           invalid-var-error
                           "Invalid URI expansion vars near ~S"
                           var)))
   
   
   (defun intern-op (name)
  -  (let ((-name (concatenate 'string "-" (string-upcase name))))
  -    (check-uri (find-symbol -name 'cl-uri-templates.operators)
  +  (multiple-value-bind (symbol type)
  +      (find-symbol (string-upcase name)
  +                   'cl-uri-templates.operators)
  +    (check-uri (and symbol
  +                    (eq type :external))
                  invalid-op-error
  -               "~A is not a valid operator for URI-Templates"
  -               -name)
  -    (intern -name 'cl-uri-templates.operators)))
  +               "~A is not a recognized operator for a URI-Template."
  +               name)
  +    symbol))
   
   
   (defun read-operator (stream)
  
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: 
  
  (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) ())
  
  