anchor.diff:  
   ;;;; Input Methods
   
  +(defun %to-octets (buff start end ef)
  +  (babel:string-to-octets buff :start start :end end
  +                          :encoding (babel:external-format-encoding ef)))
  +
   (defmethod stream-clear-input ((stream dual-channel-gray-stream))
  -  (with-accessors ((ib input-buffer-of)) stream
  +  (with-accessors ((ib input-buffer-of))
  +      stream
       (iobuf-reset ib)
       nil))
   
  
positive.code: ;;;        from soft end-of-files (EOF and *some* bytes still in the buffer
  ;;;        but not enough to make a full character)
  (defmethod stream-read-char ((stream dual-channel-gray-stream))
    (with-accessors ((fd input-fd-of) (ib input-buffer-of)
                     (unread-index ibuf-unread-index-of)
                     (ef external-format-of)) stream
      (setf unread-index (iobuf-start ib))
      (let ((str nil)
            (ret nil))
        (flet ((fill-buf-or-eof ()
                 (setf ret (%fill-ibuf ib fd))
                 (when (eql ret :eof)
                   (return-from stream-read-char :eof))))
          (cond ((zerop (iobuf-length ib))
                 (iobuf-reset ib)
  
negative.code: ;;;
  ;;; gray-stream-methods.lisp --- Implementation using gray streams.
  ;;;
  ;;; Copyright (C) 2006-2008, Stelian Ionescu  <sionescu@common-lisp.net>
  ;;;
  ;;; This code is free software; you can redistribute it and/or
  ;;; modify it under the terms of the version 2.1 of
  