anchor.diff:            do (walk-document node process-node)
             do (setf node (ps:chain node next-sibling))))
     
  -  (let ((*matches* (array)))
  +  (let ((*matches* (array))
  +        (*identifier* 0))
       (walk-document (ps:chain document body) matches-from-element)
       (ps:chain -j-s-o-n (stringify *matches*))))
   
  
positive.code: (in-package :next)
  
  (define-parenscript query-buffer (query)
    (defvar *matches* (array))
    
    (defun qsa (context selector)
      "Alias of document.querySelectorAll"
      (ps:chain context (query-selector-all selector)))
    
    (defun match-object-create (body)
      (ps:create "type" "match" "identifier" 0 "body" body))
    
    (defun get-substring (index string)
      "Return the substring and preceding/trailing text for a given index."
  
negative.code:           (string (if case-sensitive-p string (ps:chain string (to-lower-case)))))
        (loop with i = (ps:chain string (index-of search-string 0))
              until (equal i -1)
              collect (match-object-create (get-substring i string) (incf *identifier*))
              do (setf i (ps:chain string (index-of search-string (+ i 1)))))))
    
    (defun matches-from-element (element query)
  