anchor.diff:                     (return #\Newline))))))))
   
   (defmethod stream-read-char-no-hang ((stream dual-channel-gray-stream))
  -  (with-accessors ((fd input-fd-of) (ib input-buffer-of)
  -                   (ef external-format-of)) stream
  +  (with-accessors ((fd input-fd-of)
  +                   (ib input-buffer-of)
  +                   (ef external-format-of))
  +      stream
       (let ((str nil)
             (ret nil)
             (eof nil))
  
positive.code: 
  (defmethod stream-peek-char ((stream dual-channel-gray-stream))
    (let ((char (stream-read-char stream)))
      (cond ((eql char :eof) :eof)
            (t (%stream-unread-char stream)
               (values char)))))
  
  
negative.code: ;; TODO: use the buffer pool
  (defmethod close :around ((stream dual-channel-gray-stream) &key abort)
    (with-accessors ((ib input-buffer-of)
                     (ob output-buffer-of))
        stream
      (unless (or abort (null ib)) (finish-output stream))
      (when ib (free-iobuf ib))
      (when ob (free-iobuf ob))
  