anchor.diff:     (mutex :accessor mutex :initform (make-lock))))
   
   (defun make-connection (&key (connection-type :sync) (host "localhost") (port 9042)); TODO: &key version compression)
  -  (let* ((c-types '((:sync . synchronous-connection)
  +  (let* ((c-types '((:sync . connection)
                       (:async . async-connection)))
            (conn (usocket:socket-stream
                   (usocket:socket-connect host port :element-type '(unsigned-byte 8))))
  
positive.code: (defgeneric execute (connection statement &rest values)
    (:documentation "Executes a prepared statement with bound values."))
  
  (defmethod startup ((conn synchronous-connection) &key (version "3.0.0") (compression nil))
    (declare (ignore compression)) ;; TODO: Implement compression
    (let* ((options (alexandria:alist-hash-table
                     `(("CQL_VERSION" . ,version))))
  
negative.code:          (cxn (conn conn)))
      (encode-value header cxn)))
  
  (defmethod options ((conn connection))
    (let ((header (make-instance 'options-header :op :options))
          (cxn (conn conn)))
      (encode-value header cxn)))
  
  (defmethod prepare ((conn connection) (statement string))
    (when (not (gethash statement (pqs conn)))
      (let ((cxn (conn conn))
            (header (make-instance 'prepare-header :op :prepare :ps statement)))
  