anchor.diff:                                   (encoding :utf-8))
                              &body body)
     "Evaluate BODY with the current connection bound to a new connection
  -specified by HOST, PORT, and ENCODING arguments."
  +specified by the given HOST, PORT, and ENCODING."
     `(let ((*connection* (make-instance 'redis-connection
                                         :host ,host
                                         :port ,port
  
positive.code:               (progn ,@body))
               (otherwise
                (error 'redis-bad-reply
                       :message (format nil
                                        "Received ~C as an initial reply byte." ,char)))))))))
  
  (def-expect-method :ok
      (assert (string= reply "OK"))
  
negative.code:   ()
    (:documentation "Raised when a Redis protocol error is detected."))
  
  ;; outgoing
  
  (defgeneric tell (type cmd &rest args)
    (:documentation "Send a command to Redis server over a socket connection.
  TYPE must be one of the keywords :INLINE, :BULK, or :MULTI.  Otherwise an
  error will be signalled.  CMD is the command name (a string or a symbol),
  and ARGS are its arguments (keyword arguments are also supported).  In the
  case of a :bulk command the last argument must be a string."))
  
  (defmethod tell :after (type cmd &rest args)
    (declare (ignore type cmd args))
  