anchor.diff:      (t form)))
   
   (defmacro with-close-on-error ((var value) &body body)
  -  "Bind `VAR' to `VALUE', execute `BODY' as implicit PROGN and return `VAR'.
  -If a non-local exit occurs during the execution of `BODY' call CLOSE with :ABORT T on `VAR'."
  -  (with-gensyms (errorp)
  -    `(let ((,var ,value) (,errorp t))
  -       (unwind-protect
  -            (multiple-value-prog1 (locally ,@body ,var) (setf ,errorp nil))
  -         (when (and ,var ,errorp) (close ,var :abort t))))))
  +  "Bind `VAR' to `VALUE' and execute `BODY' as implicit PROGN.
  +If a non-local exit occurs during the execution of `BODY',
  +call CLOSE with :ABORT T on `VAR'."
  +  `(let ((,var ,value))
  +     (unwind-protect-case () ,@body
  +       (:abort (close ,var :abort t)))))
   
   (defmacro %create-internet-socket (family &rest args)
     `(case ,family
  
positive.code:   (when local-filename
      (bind-address socket (ensure-address local-filename :family :local)
                    :reuse-address reuse-address)
      (listen-on socket :backlog backlog)))
  
  (define-socket-creator (:local :stream :passive)
      (family ef &key local-filename (reuse-address t)
  
negative.code:   (when local-filename
      (bind-address socket (ensure-address local-filename :family :local)))
    (when remote-filename
      (connect socket (ensure-address remote-filename :family :local)))
    (values socket))
  
  (define-socket-creator (:local :stream :active)
      (family ef &key local-filename remote-filename
  