anchor.diff:  
   ;;; Utilities
   
  -(defun decode-neo4j-json (json)
  +(defun decode-neo4j-json (json &key debug)
     "Parse the JSON returned by Neo4J into a CL structure"
     ;; Neo4j sends a stream of octets. Convert this into a string.
     (let ((json-string (flexi-streams:octets-to-string json)))
  +    (when debug (format t "decode-neo4j-json decoding string '~A'" json-string))
       ;; If an empty string was returned, pass an empty string back.
       (if (equal json-string "")
           ""
  
positive.code:    If an error is detected, it will be signalled with whatever information was provided by Neo4J"
    (handler-case
      (multiple-value-bind (reply-content code headers uri stream ignore reason)
        (drakma:http-request (concatenate 'string (base-url endpoint) "/db/" (dbname endpoint) "/tx/commit")
                             :method :post
                             :accept "application/json; charset=UTF-8"
                             :content-type "application/json"
                             :basic-authorization `(,(dbuser endpoint) ,(dbpasswd endpoint))
                             :content (cl-json:encode-json-alist-to-string
                                        statements))
        ;; We only bound these values to make m-v-b work properly.
        (declare (ignore headers)
                 (ignore uri)
  
negative.code:    (message :initarg message :reader message)))
  
  
  (defun neo4j-transaction (endpoint statements &key debug)
    "Execute one or more Cypher statements, wrapped in a transaction.
     For now, we're simply issuing all statements in a batch and then committing,
     instead of building it up over several HTTP requests.
  