anchor.diff:              (multiple-value-prog1 (locally ,@body ,var) (setf ,errorp nil))
            (when (and ,var ,errorp) (close ,var :abort t))))))
   
  +(defmacro %create-internet-socket (family &rest args)
  +  `(case ,family
  +     ,@(loop :for f :in '(:ipv4 :ipv6) :collect
  +          `(,f (create-socket ,f ,@args)))))
  +
   (defmacro with-guard-again-non-list-args-and-destructuring-bind-errors
       (form args &body body)
     `(if (listp ,args)
  
positive.code: 
  ;;; Internet Stream Active Socket creation
  
  (defun %%make-internet-stream-active-socket (family ef keepalive nodelay reuse-address
                                               local-host local-port remote-host remote-port
                                               input-buffer-size output-buffer-size)
    (let ((local-port  (ensure-numerical-service local-port))
          (remote-port (ensure-numerical-service remote-port)))
      (with-close-on-error (socket (create-socket family :stream :active ef
                                                  :input-buffer-size input-buffer-size
                                                  :output-buffer-size output-buffer-size))
        (when keepalive (setf (socket-option socket :keep-alive) t))
        (when nodelay (setf (socket-option socket :tcp-nodelay) t))
        (when local-host
          (bind-address socket (ensure-hostname local-host)
                        :port local-port
                        :reuse-address reuse-address))
        (when (plusp remote-port)
          (connect socket (ensure-hostname remote-host)
                   :port remote-port)))))
  
  (defun %make-internet-stream-active-socket (args family ef)
    (destructuring-bind (&key keepalive nodelay (reuse-address t)
  
negative.code: If `FD' is an invalid socket descriptor and `ERRORP' is not NIL a condition subtype of POSIX-ERROR
  is signaled, otherwise two values are returned: NIL and the specific condition object."
    (flet ((%make-socket-stream ()
             (macrolet ((%create-socket (family)
                          `(create-socket ,family :stream :active external-format :fd fd
                                          :input-buffer-size input-buffer-size
                                          :output-buffer-size output-buffer-size)))
               (switch ((get-address-family fd) :test #'=)
                 (af-inet  (%create-socket :ipv4))
                 (af-inet6 (%create-socket :ipv6))
                 (af-local (%create-socket :local))))))
      (if errorp
          (%make-socket-stream)
          (ignore-some-conditions (posix-error)
  