anchor.diff:    (declare (type buffer buffer))
     (loop for value = (read-value buffer)
        collect value
  -     until (progn (skip-spaces buffer) (string= (fetch-char buffer) #\]))) ; we may fetch-char here, as the character is a , to be skipped if it is not a ]
  +     until (progn (skip-spaces buffer) (char= (fetch-char buffer) #\]))) ; we may fetch-char here, as the character is a , to be skipped if it is not a ]
     )
   
   (defun read-number (buffer)
  
positive.code:   (declare (type buffer buffer))
    (skip-to buffer #\:)
    (skip-spaces buffer)
    (let ((meaning (fetch-char buffer)))
      (cond ((string= meaning #\")
  	   (skip-string buffer))
  	  ((string= meaning #\{)
  	   (skip-object buffer))
  	  ((string= meaning #\[)
  	   (skip-array buffer))
  	  ((char= meaning #\t)
  	   (incf (buffer-index buffer) 3))
  	  ((char= meaning #\f)
  	   (incf (buffer-index buffer) 4))
  	  ((char= meaning #\n)
  	   (incf (buffer-index buffer) 3))
  	  (T
  	   (skip-number buffer))))
    (values))
  
  (defun skip-string (buffer)
  
negative.code:   (declare (type buffer buffer))
    (skip-to buffer #\:)
    (skip-spaces buffer)
    (case (fetch-char buffer)
      (#\" (parse-string buffer))
      (#\{ (read-object buffer))
      (#\[ (read-array buffer))
      (#\t (incf (buffer-index buffer) 3)
  	 T)
      (#\f (incf (buffer-index buffer) 4)
  	 nil)
      (#\n (incf (buffer-index buffer) 3)
  	 nil)
      (otherwise (read-number buffer))))
  
  (defun skip-value (buffer)
    "Skips a value from the stream.
  