anchor.diff:        (values key value)))
   
   
  +(defun parse-dict-to-alist (stream length)
  +  (declare (type fixnum length)
  +	   (stream stream))
  +  (let ((new-hash nil))
  +    (if (= length 0)
  +      new-hash
  +      (with-partial-file (stream length)
  +	(loop for (key value) = (multiple-value-list (parse-pair stream))
  +	   do (push (cons key value) new-hash) 
  +	   when (eof-p) return (values new-hash))))))
   
   (defun parse-dict (stream length)
     (declare (type fixnum length)
  
positive.code:   (intern (camel-case-to-lisp key)
            (find-package 'keyword)))
  
  
  ;Could switch code-char to an ASCII digit table since there are only 10 values
  ;we care about.  That would also fix the parse-integer ignores whitspace
  ;incompatibility.
  (defun parse-bin-integer (vector)
    (parse-integer (map 'string #'code-char vector)))
  
  (defun get-ns-length (stream)
    (loop
       with total fixnum = 0
       for c = (read-char stream)
       when (eq c #\:) return total
         do (setq total (+ (- (char-code c) (char-code #\0)) (* total 10)))))
  
  #+string-seek(defun parse-payload (stream)
  	(declare (type stream stream))
  
negative.code: 	     (#\" (let ((str (make-string length)))
  		    (read-sequence str stream)
  		    str))
  	     (#\} (parse-dict-to-alist stream length))
  	     (#\] (parse-list stream length))
  	     (#\! (progn
  		    (file-position stream (+ (the fixnum (file-position stream)) length))
  		    (= length 4)))
  	     (#\~ nil)
  	     (#\, (let ((str (make-string length)))
  