anchor.diff:  
   ;; OVERVIEW
   
  -;; TODO
  +;; Public notifications (other objects can use these notifications on
  +;; buffer)
  +
  +; n-input-started
  +; n-input-ended
  +; n-output-started
  +; n-output-ended
  +
  +;; Private notifications
  +
  +; n-input-should-end
  +; n-output-should-end
   
   
   (in-package :de-sim.buffer)
  -
   
   
   (defgeneric fits? (buf obj)
  
positive.code:    (de-sim.core:notifications
      :initform (list #'n-inserted
  		    #'n-removed
  		    #'n-bandwidth-changed
  		    #'n-input-started
  		    #'n-input-ended
  		    #'n-output-started
  		    #'n-output-ended))
     (incoming-bandwidth
      :initarg :incoming-bandwidth
      :initform -1
      :accessor incoming-bandwidth-of
      :type fixnum
      :documentation "Negative means infinite")
     (outgoing-bandwidth
  
negative.code:   (if (not (null (incoming-element-of buf)))
        (error "input busy")
        (let ((delay (/ (size buf)
  		      (input-bandwidth-of buf))))
  	(setf (incoming-element-of buf)
  	      incoming)
  	(schedule buf delay #'n-input-should-end))))
  
  
  (defmethod n-input-ended ((buf buffer) (incoming object))
  