anchor.diff:        (connect socket (ensure-hostname remote-host)
                  :port remote-port))))
   
  -(declaim (inline %%make-internet-datagram-socket))
  -(defun %%make-internet-datagram-socket (family ef broadcast interface reuse-address
  -                                        local-host local-port remote-host remote-port)
  +(define-socket-creator (:internet :datagram :active)
  +    (family ef &key broadcast interface (reuse-address t)
  +            local-host (local-port 0)
  +            (remote-host +any-host+) (remote-port 0))
     (with-close-on-error (socket (%create-internet-socket family :datagram :active ef))
  -    (%%init-internet-datagram-socket socket broadcast interface reuse-address
  -                                     local-host local-port remote-host remote-port)))
  -
  -(defun %make-internet-datagram-socket (args family ef)
  -  (destructuring-bind (&key broadcast interface (reuse-address t)
  -                            local-host (local-port 0)
  -                            (remote-host +any-host+) (remote-port 0))
  -      args
  -    (%%make-internet-datagram-socket family ef broadcast interface reuse-address
  -                                     local-host local-port remote-host remote-port)))
  -
  -(define-compiler-macro %make-internet-datagram-socket (&whole form args family ef)
  -  (with-guard-against-non-list-args-and-destructuring-bind-errors
  -      form args
  -    (destructuring-bind (&key broadcast interface (reuse-address t)
  -                              local-host (local-port 0)
  -                              (remote-host '+any-host+) (remote-port 0))
  -        (cdr args)
  -      `(%%make-internet-datagram-socket ,family ,ef ,broadcast ,interface ,reuse-address
  -                                        ,local-host ,local-port ,remote-host ,remote-port))))
  +    (%%init-internet-datagram-active-socket socket broadcast interface reuse-address
  +                                            local-host local-port remote-host remote-port)))
    
   ;;; Local Datagram Socket creation
   
  -(defun %%init-local-datagram-socket (socket local-filename remote-filename)
  +(defun %%init-local-datagram-active-socket (socket local-filename remote-filename)
     (setf (socket-option socket :no-sigpipe :if-does-not-exist nil) t)
     (when local-filename
       (bind-address socket (ensure-address local-filename :family :local)))
     (when remote-filename
       (connect socket (ensure-address remote-filename :family :local))))
   
  -(declaim (inline %%make-local-datagram-socket))
  -(defun %%make-local-datagram-socket (family ef local-filename remote-filename)
  +(define-socket-creator (:local :datagram :active)
  +    (family ef &key local-filename remote-filename)
     (declare (ignore family))
     (with-close-on-error (socket (create-socket :local :datagram :active ef))
  -    (%%init-local-datagram-socket socket local-filename remote-filename)))
  -
  -(defun %make-local-datagram-socket (args family ef)
  -  (destructuring-bind (&key local-filename remote-filename)
  -      args
  -    (%%make-local-datagram-socket family ef local-filename remote-filename)))
  -
  -(define-compiler-macro %make-local-datagram-socket (&whole form args family ef)
  -  (with-guard-against-non-list-args-and-destructuring-bind-errors
  -      form args
  -    (destructuring-bind (&key local-filename remote-filename)
  -        (cdr args)
  -      `(%%make-local-datagram-socket ,family ,ef ,local-filename ,remote-filename))))
  +    (%%init-local-datagram-active-socket socket local-filename remote-filename)))
    
   ;;; MAKE-SOCKET
  
positive.code:                     :reuse-address reuse-address)
        (listen-on socket :backlog backlog))))
  
  (declaim (inline %%make-internet-stream-passive-socket))
  (defun %%make-internet-stream-passive-socket (family ef interface reuse-address
                                                local-host local-port backlog)
    (with-close-on-error (socket (%create-internet-socket family :stream :passive ef))
      (%%init-internet-stream-passive-socket socket interface reuse-address
                                             local-host local-port backlog)))
  
  (defun %make-internet-stream-passive-socket (args family ef)
    (destructuring-bind (&key interface (reuse-address t)
                              (local-host +any-host+) (local-port 0)
                              (backlog *default-backlog-size*))
        args
      (%%make-internet-stream-passive-socket family ef interface reuse-address
                                             local-host local-port backlog)))
  
  (define-compiler-macro %make-internet-stream-passive-socket (&whole form args family ef)
    (with-guard-against-non-list-args-and-destructuring-bind-errors
        form args
      (destructuring-bind (&key interface (reuse-address t)
                                (local-host '+any-host+) (local-port 0)
                                (backlog *default-backlog-size*))
          (cdr args)
        `(%%make-internet-stream-passive-socket ,family ,ef ,interface ,reuse-address
                                                ,local-host ,local-port ,backlog))))
  
  ;;; Local Stream Active Socket creation
  
negative.code:      (check-type address-family (member :internet :local :ipv4 :ipv6) "one of :INTERNET, :LOCAL, :IPV4 or :IPV6")
       (check-type type (member :stream :datagram) "either :STREAM or :DATAGRAM")
       (check-type connect (member :active :passive) "either :ACTIVE or :PASSIVE")
       (let* ((family (if (member address-family '(:ipv4 :ipv6)) :internet address-family))
              (lower-function (make-1°-level-name family type connect))
             (newargs (remove-from-plist args :address-family :type :connect :external-format :ipv6)))
         (multiple-value-case (address-family)
           (:internet (setf address-family '+default-inet-address-family+))
  