anchor.diff:  
   (defgeneric device-length (device))
   
  -(defgeneric wait-for-input (device &optional timeout))
  -
  -(defgeneric wait-for-output (device &optional timeout))
  +(defgeneric device-poll-input (device &optional timeout))
  +
  +(defgeneric device-poll-output (device &optional timeout))
    
   
  
positive.code:     (nix:repeat-decreasing-timeout (remaining timeout :rloop)
        (flet ((check-timeout ()
                 (if (plusp remaining)
                     (wait-for-output device remaining)
                     (return-from :rloop 0))))
          (handler-case
              (nix:write (output-handle-of device) (inc-pointer buf start) (- end start))
  
negative.code: ;;; I/O WAIT
  ;;;-----------------------------------------------------------------------------
  
  (defmethod device-poll-input ((device device) &optional timeout)
    (iomux:wait-until-fd-ready (input-handle-of device) :input timeout))
  
  (defmethod device-poll-output ((device device) &optional timeout)
    (iomux:wait-until-fd-ready (output-handle-of device) :output timeout))
  
  