anchor.diff:      (foreign-free message)))
   
   (defmacro with-msg-init ((var) &body body)
  -  "Evaluate BODY in an environment where VAR is binded to a new empty
  -  message."
  +  "Evaluate BODY in an environment where VAR is bound to a new empty message."
     `(with-foreign-object (,var 'msg)
        (call-ffi -1 '%msg-init ,var)
        (unwind-protect
  
positive.code: 
  (defmacro do-poll-items ((var items nb-items) &body body)
    "For each poll item in ITEMS, evaluate BODY in an environment where VAR is
    binded to the poll item."
    (let ((i (gensym)))
      `(do ((,i 0))
           ((= ,i ,nb-items))
  
negative.code:   (call-ffi -1 '%close socket))
  
  (defmacro with-socket ((var context type) &body body)
    "Evaluate BODY in an environment where VAR is bound to a socket created in
  context CONTEXT with type TYPE."
    `(let ((,var (socket ,context ,type)))
       (unwind-protect
  