anchor.diff:  (defvar *connection*)
   
   (defclass connection ()
  -  ((socket :initarg :socket :accessor connection-socket)))
  +  ((socket :initarg :socket :accessor connection-socket)
  +   (channel-subscriptions :initform (make-hash-table :test 'equal)
  +                          :accessor connection-channel-subscriptions)
  +   (pattern-subscriptions :initform (make-hash-table :test 'equal)
  +                          :accessor connection-pattern-subscriptions)))
   
   (defun open-connection (&optional host port)
     (when (null host) (setf host *host*))
  
positive.code: (define-command exec "Commit transaction")
  (define-command discard "Rollback transaction")
  
  ;; TODO: Publish/Subscribe
  
  ;; Persistence control commands
  
  
negative.code: (defun close-connection (connection)
    (when (connection-socket connection)
      (usocket:socket-close (connection-socket connection))
      (setf (connection-socket connection) nil)
      (clrhash (connection-channel-subscriptions connection))
      (clrhash (connection-pattern-subscriptions connection))))
  
  (defun connection-stream (connection)
    (usocket:socket-stream (connection-socket connection)))
  