anchor.diff:    "reads a key-value pair into the hash"
     (declare (type buffer buffer))
     (cons :obj
  -	(loop until (progn (skip-spaces buffer)
  -			   (eql (fetch-char buffer) #\})) ; we may fetch-char here, as the character is a #\, to be skipped if it is not a #\}
  -	   collect (cons (read-key buffer)
  +	(loop until (progn (skip-until* buffer "\"}") ; a string or the end of the objects are our onlyinterests
  +			   (eql (current-char buffer) #\}))
  +	   collect (cons (read-key buffer) ; we know that the first character is the " of the key
   			 (progn (skip-to buffer #\:)
   				(read-value buffer))))))
   
  
positive.code:     (skip-spaces buffer)
      (if keywords-to-read
  	(read-partial-object buffer (apply #'build-character-tree keywords-to-read))
  	(read-object buffer))))
  (define-compiler-macro parse (&whole whole string &rest keywords-to-read) ; this allows the character tree to be precompiled
    (if keywords-to-read
        `(let ((buffer (build-buffer ,string)))
  
negative.code: (defun read-key (buffer)
    "reads a key from the key-value list"
    (declare (type buffer buffer))
    (parse-string buffer))
  
  (defun skip-key (buffer)
  