anchor.diff:         (unwind-protect
               (multiple-value-prog1 (locally ,@body ,var) (setf ,errorp nil))
            (when (and ,var ,errorp) (close ,var :abort t))))))
  +
  +(defmacro with-guard-again-non-list-args-and-destructuring-bind-errors
  +    (form args &body body)
  +  `(if (listp ,args)
  +       (handler-case (progn ,@body)
  +         (error (err) `(error ,err)))
  +       ,form))
   
   (defun convert-or-lookup-inet-address (address &optional (ipv6 *ipv6*))
     "If ADDRESS is an inet-address designator, it is converted, if
  
positive.code:     (%%make-local-stream-passive-socket family ef local-filename reuse-address backlog)))
  
  (define-compiler-macro %make-local-stream-passive-socket (&whole form args family ef)
    (if (symbolp args)
        form
        (handler-case
            (destructuring-bind (&key local-filename (reuse-address t)
                                      (backlog *default-backlog-size*))
                (cdr args)
              `(%%make-local-stream-passive-socket ,family ,ef ,local-filename ,reuse-address ,backlog))
          (error (err) `(error ,err)))))
  
  ;;; Internet Datagram Socket creation
  
negative.code:                                         local-host local-port remote-host remote-port)
    (let ((local-port  (ensure-numerical-service local-port))
          (remote-port (ensure-numerical-service remote-port)))
      (with-close-on-error (socket (create-socket family :datagram :active ef))
        (when broadcast (set-socket-option socket :broadcast :value t))
        (when local-host
          (bind-address socket (convert-or-lookup-inet-address local-host)
  