anchor.diff:      (setf (gethash fd %fd-retain-count-table%) 1)
       fd))
   
  -(define-condition fd-not-managed (error)
  +(define-condition fd-not-managed (fd-error)
     ((fd
       :initarg :fd
       :initform (required)
  -    :accessor fd-not-managed-fd))
  -  (:report (lambda (c s) (format s "Can't retain unmanaged FD ~A" (fd-not-managed-fd c)))))
  +    :accessor fd-not-managed-fd
  +    :documentation
  +    "The fd this condition is about."))
  +  (:report (lambda (c s) (format s "Can't retain/release unmanaged FD ~A" (fd-not-managed-fd c))))
  +  (:documentation
  +   "This condition indicates that a retain or release was issued for a
  +file descriptor which is not retain/release managed."))
   
   (defun %fd-retain (fd)
  +  "The non-locking version of `fd-retain'."
     (unless (gethash fd %fd-retain-count-table%)
       (error 'fd-not-managed :fd fd))
     (incf (gethash fd %fd-retain-count-table%))
  
positive.code:         result))))
  
  (defun fd-stream-unread (stream thing)
    (with-slots (buffer buffer-offset) stream
      (when (zerop buffer-offset)
        (error "Can't unread without reading first"))
  
negative.code:        ,@body)))
  
  (defun dup-retained (fd)
    "Dup the given file descriptor and return the new file descriptor
  with a +1 retain count."
    (with-safe-fd-manipulation
      (let ((new-fd (track (dup fd))))
        (debug-log status "DUP ~A = ~A" new-fd fd)
  