anchor.diff:  (define-sockopt-type :swap :int64)
   (define-sockopt-type :affinity :uint64)
   (define-sockopt-type :identity :char 255)
  +(define-sockopt-type :subscribe :char)
  +(define-sockopt-type :unsubscribe :char)
   (define-sockopt-type :rate :int64)
   (define-sockopt-type :recovery-ivl :int64)
   (define-sockopt-type :recovery-ivl-msec :int64)
  
positive.code:            (foreign-bitfield-symbols 'event-types (mem-ref %value type)))
            (t
             (mem-ref %value type)))))))
  
negative.code: 
  (defun getsockopt (socket option)
    "Get the value currently associated to a socket option."
    (when (member option '(:subscribe :unsubscribe))
      (error "Socket option ~A is write only." option))
    (let ((info (gethash option *socket-options-type*)))
      (unless info
        (error "Unknown socket option ~A." option))
      (destructuring-bind (type length) info
        (with-foreign-objects ((%value type length) (%size 'size-t))
          (call-ffi -1 '%getsockopt socket option %value %size)
          (case option
            (:identity
  