anchor.diff:    "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"
     (declare (type buffer buffer)
   	   (type simple-string char-arr))
  -  (flet ((char-in-arr ()
  +  (flet ((char-in-arr () ;; TODO I can use char-in-arr
   	   (loop for c across char-arr
   	      when (eql (current-char buffer) (the character c))
   	      do (return-from char-in-arr T))
  
positive.code: ;;;;;;;;;;;;;;;;;
  ;;;; parsing code
  
  ;;(eval-when (:compile-toplevel)
  ;; (defconstant +space-characters+ '(#\Return #\Space #\Newline #\Tab #\Linefeed)
  ;;   "List of characters which may denote a space in the JSON format (these have not been verified)")
  ;;  )
  
  (eval-when (:compile-toplevel :load-toplevel)
    (defconstant +do-skip-spaces+ nil
  
negative.code:   (loop do (next-char/ buffer)
       until (eql (current-char buffer) last-char)))
  
  (defun char-in-arr (char char-arr)
    "Returns T if <char> is found in <char-arr>, returns nil otherwise"
    (declare (type simple-string char-arr)
  	   (type character char))
    (loop for c across char-arr
       when (eql char (the character c))
       do (return-from char-in-arr T))
    nil)
  
  (defun skip-until* (buffer char-arr)
    "Skips characters until one of the characters in <char-arr> has been found.  The character which was found is not read from the buffer."
    (declare (type simple-string char-arr)
     	   (type buffer buffer))
    (flet ((char-in-arr () ;; TODO I can use char-in-arr
             (loop for c across char-arr
                when (eql (current-char buffer) (the character c))
                do (return-from char-in-arr T))
  