anchor.diff:    (call-ffi -1 '%close socket))
   
   (defmacro with-socket ((var context type) &body body)
  -  "Evaluate BODY in an environment where VAR is binded to a socket created in
  +  "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
  
positive.code:        (ignore-errors (call-ffi -1 '%msg-close ,var)))))
  
  (defmacro with-msg-init-size ((var size) &body body)
    "Evaluate BODY in an environment where VAR is binded to a new message of
  size SIZE."
    `(with-foreign-object (,var 'msg)
       (call-ffi -1 '%msg-init-size ,var ,size)
       (unwind-protect
  
negative.code:     (foreign-free message)))
  
  (defmacro with-msg-init ((var) &body body)
    "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
  