anchor.diff:         (defconstant ,name ,value))))
   
   
  -(define-constant +uri-reserved-chars+ ";/?:@&=+$,")
  -
  -
  -(defun uri-reserved-char-p (char)
  -  (find char +uri-reserved-chars+))
  -
  -
  -(define-constant +uri-mark-chars+ "-_.!~*'()")
  -
  -
  -(defun uri-unreserved-char-p (char)
  -  (declare (type character char))
  -  (or (alphanumericp char)
  -      (find char +uri-mark-chars+)))
  -
  -
   (define-reader read-arg
       :allowed-char (lambda (char)
                       (declare (type character char))
  
positive.code: (in-package #:cl-uri-templates)
  
  
  (defvar *encode-uri-string* t)
  
  (declaim (optimize (debug 3)))
  
  
  
negative.code:   (check-uri (char= #\- (read-char stream))
               invalid-op-error
               "operator must start with '-'.")
    (let ((op (intern-op (read-op stream)))
          (arg (read-arg stream))
          (vars (read-vars stream)))
      (check-op-arity op (length vars))
      (cons op (cons arg vars))))
  
  
  (defun read-expansion (stream)
    (declare (type stream stream))
    (if (char= #\- (peek-char nil stream))
        (read-operator stream)
        `(macrolet ((uri-template-var (var &optional (default ""))
                      `(handler-case ,var
                         (unbound-variable ()
                           ,default))))
           ,(read-var stream))))
  
  
  (defun read-uri-template (stream &optional recursive-p)
  