anchor.diff:  (defun create-socket (&key (family :internet) (type :stream) (connect :active)
                         (protocol :default) (ipv6 *ipv6*)
                         (external-format :default))
  -  ;; (check-type address-family (member :internet :local))
  -  (check-type type (member :stream :datagram))
  -  (check-type connect (member :active :passive))
  -  (check-type ipv6 (member nil t :ipv6))
     (when (or (null family) (eq family :internet))
       (setf family (if ipv6 :ipv6 :ipv4)))
     (let ((class (select-socket-type family type connect protocol)))
  
positive.code: 
  (in-package :net.sockets)
  
  (defun xnor (x1 x2)
    (eq (not x1) (not x2)))
  
  ;;; FIXME: protocol is sort of misinterpreted.
  ;;;
  ;;; CREATE-SOCKET is a a bit of a confusing name as it is too similar
  
negative.code: (declaim (inline %make-internet-datagram-socket))
  (defun %make-internet-datagram-socket (args ef)
    (let (socket address)
      (destructuring-bind (&key local-host (local-port 0)
                                remote-host (remote-port 0)
                                reuse-address broadcast family)
          args
        (%close-on-error (socket)
          (setf socket (create-socket :family family :type :datagram
                                      :connect :active :external-format ef))
  