anchor.diff:     (message :initarg message :reader message)))
   
   
  -(defun neo4j-transaction (endpoint statements)
  +(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.
  
positive.code: 
  ;;; Utilities
  
  (defun decode-neo4j-json (json)
    "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)))
      ;; If an empty string was returned, pass an empty string back.
      (if (equal json-string "")
          ""
  
negative.code:         ;; Process the response we got, returning either the content or an error
          (let* ((response (decode-neo4j-json reply-content))
                 (errors (second (second response))))
            (when debug (format t "neo4j-transaction received response '~A' after decoding" response))
            ;; If an error was returned, throw it
            (if errors
                (let* ((error-code (cdr (assoc :code errors)))
  