anchor.diff:          ((#\t #\f #\n)
            (parse-constant input)))))
     (:method ((input pathname))
  -   (with-open-file (stream input)
  -     (parse stream)))
  +    (with-open-file (stream input)
  +      (parse stream)))
     (:method ((input string))
       (parse (make-string-input-stream input))))
   
  
positive.code:                (read-char input))
               (peek ()
                 (peek-char nil input)))
        (let*
         (
          (starting-symbol (next))
          (string-quoted (equal starting-symbol #\"))
          )
         (unless string-quoted (outc starting-symbol))
         (loop
          (cond
           ((eql (peek) #\")
            (next)
            (return-from parse-string output))
           ((eql (peek) #\\)
            (next)
            (ecase (next)
               (#\" (outc #\"))
               (#\\ (outc #\\))
               (#\/ (outc #\/))
               (#\b (outc #\Backspace))
               (#\f (outc #\Page))
               (#\n (outc #\Newline))
               (#\r (outc #\Return))
               (#\t (outc #\Tab))
               (#\u (outc
            (parse-unicode-escape input)
            ))))
           ((and (or (whitespace-p (peek)) 
                     (eql (peek) #\:)) 
                 (not string-quoted)) 
            (return-from parse-string output))
           (t
            (outc (next)))))))))
  
  (defun whitespace-p (char)
    (member char '(#\Space #\Newline #\Tab #\Linefeed #\Return)))
  
  (defun skip-whitespace (input)
    (loop
       while (and (listen input)
                  (whitespace-p (peek-char nil input)))
       do (read-char input)))
  
  (defun peek-char-skipping-whitespace (input &optional (eof-error-p t))
    (skip-whitespace input)
  
negative.code:          (parse-string input))
          ((#\- #\0 #\1 #\2 #\3 #\4 #\5 #\6 #\7 #\8 #\9)
           (parse-number input))
          (#\{
           (parse-object input))
          (#\[
  