anchor.diff:    (call-ffi 0 '%device (foreign-enum-value 'device-type type) frontend backend))
   
   (defun msg-init-fill (message data &key (encoding *default-foreign-encoding*))
  -  "Initialize fill and return a message. If DATA is a string, convert it to a
  +  "Initialize, fill and return a message. If DATA is a string, convert it to a
   byte array."
     (etypecase data
       (string
  
positive.code:             (foreign-bitfield-value 'recv-options flags)))
  
  (defmacro with-poll-items ((items-var size-var) items &body body)
    "Evaluate BODY in an environment where ITEMS-VAR is bound to a foreign
    array of poll items, and SIZE-VAR is bound to the number of polled
    items. Poll items are filled according to ITEMS. ITEMS is a list where each
    element describe a poll item. Each description is a list where the first
    element is a socket or file descriptor, and other elements are the events to
    watch for, :POLLIN, :POLLOUT or :POLLERR."
    (let ((i 0)
          (pollitem-size (foreign-type-size 'pollitem)))
      `(with-foreign-object (,items-var 'pollitem ,(length items))
  
negative.code:   (call-ffi -1 '%msg-move destination source))
  
  (defun send (socket message &optional flags)
    "Queue MESSAGE to be sent on SOCKET."
    (call-ffi -1 '%send socket message
              (foreign-bitfield-value 'send-options flags)))
  
  