anchor.diff:                                          :element-type 'flex:octet)))
                                   :external-format +utf8+
                                   #-lispworks :element-type
  -                                #-lispworks 'flex:octet)))
  +                                #-lispworks 'flex:octet))
  +  (when (conn-auth conn)
  +    (let ((*connection* conn)) ; AUTH needs *CONNECTION* to be bound
  +                               ; to the current connection.  At this
  +                               ; stage, *CONNECTION* is not bound yet.
  +      (auth (conn-auth conn)))))
   
   (defun close-connection (conn)
     "Close the socket of CONN."
  
positive.code:         :report "Replace it with a new connection."
          (disconnect))))
    (setf *connection* (make-instance 'redis-connection
                                      :host host :port port)))
  
  
  (defun disconnect ()
  
negative.code:   (reopen-connection *connection*))
  
  (defmacro with-connection ((&key (host #(127 0 0 1))
                                   (port 6379)
                                   auth)
                             &body body)
    "Evaluate BODY with the current connection bound to a new connection
  specified by the given HOST and PORT"
    `(let ((*connection* (make-instance 'redis-connection
                                        :host ,host :port ,port :auth ,auth)))
       (unwind-protect (progn ,@body)
         (disconnect))))
  
  