anchor.diff:  			   string
   			   (coerce string 'simple-string))))
   
  -(declaim (inline next-char next-char/ decr-char current-char peek-behind-char fetch-char subseq-buffer-mark mark-buffer mark-length skip-to skip-to/ skip-until skip-until/ skip-until* skip-spaces subseq-until subseq-until/ subseq-tree char-in-arr))
  +(declaim (inline next-char next-char/ decr-char current-char peek-behind-char fetch-char subseq-buffer-mark mark-buffer mark-length skip-to skip-to/ skip-until skip-until/ skip-until* subseq-until subseq-until/ subseq-tree char-in-arr))
   (defun next-char (buffer)
     (declare (type buffer buffer))
     "Sets the pointer to the next char in the buffer"
  
positive.code:            nil))
      (loop until (char-in-arr)
         do (next-char buffer))))
  
  (defun skip-spaces (buffer)
    "Skips spaces, tabs and newlines until a non-space character has been found"
    (when +do-skip-spaces+
      (loop while (find (current-char buffer) +space-characters+ :test #'eql)
         do (next-char buffer))))
  (define-compiler-macro skip-spaces (&whole whole buffer)
    (declare (ignore buffer))
    (when +do-skip-spaces+
      whole))
  
  ;; (defmacro skip-spaces (buffer)
  ;;   (declare (ignore buffer))
  ;;   nil)
  
  (defun subseq-until (buffer char-arr)
    "Returns a subsequence of stream, reading everything before a character belonging to char-arr is found.  The character which was found is not read from the buffer"
  
negative.code:  See #'parse for the normal variant.
   See #'build-key-container for a way to build new keyword containers."
    (let ((buffer (build-buffer json-string)))
      (read-partial-object buffer container)))
  
  (defun parse (string &rest keywords-to-read)
    "Reads a json object from the given string, with the given keywords being the keywords which are fetched from the object.
   All parse functions assume <string> is not an empty json object.  (string/= string \"{}\")"
    (let ((buffer (build-buffer string)))
      (if keywords-to-read
  	(read-partial-object buffer (apply #'build-character-tree keywords-to-read))
  	(read-value buffer))))
  