anchor.diff:  (define-condition query-compile-error (query-error) ()
     (:report (lambda (c s) (format s "Query failed to compile (~a): ~a~%---~%~a" (query-error-token c) (query-error-msg c) (query-error-query c))))
     (:documentation "A query compile error condition."))
  -  
  +
   (define-condition query-runtime-error (query-error) ()
     (:report (lambda (c s) (format s "Query runtime error (~a): ~a~%---~%~a" (query-error-token c) (query-error-msg c) (query-error-query c))))
     (:documentation "A query runtime error condition."))
  
positive.code:               (format t "~%")))
            (error (e) (format t "(err) ~a~%" e)))
          (disconnect main-sock)))))
  
  
negative.code:           (let ((output (fast-io:finish-output-buffer response-buffer)))
              output))))))
  
  (defun json-to-response (json)
    ;; make sure that the keys in any hash-tables are strings
    (let ((yason:*parse-object-key-fn* #'identity))
      (yason:parse (babel:octets-to-string json)
                   :json-arrays-as-vectors t)))
  
  (defun parse-response (response-bytes)
    "Given a full response byte array, parse it, find the attached cursor (by
     token), and either resolve/reject the cursor's promise with the return of the
     query."
    (let* ((token (unendian response-bytes 8))
           (response-unparsed (subseq response-bytes (+ 8 4)))
           (response (json-to-response response-unparsed))
           (cursor (get-cursor token))
           (query-form (cursor-debug cursor))
           (promise-data (cursor-future cursor))
  