anchor.diff:  
   
   (defclass buffer (object)
  -  ((de-sim.core:description
  +  ((description
       :initform "buffer")
  -   (de-sim.core:notifications
  +   (notifications
       :initform (list #'n-input
   		    #'n-output))
  -   (de-sim.core:subscribable-states
  +   (subscribable-states
       :initform (list :input
   		    :output
   		    :full
  
positive.code:    (elements
      :initform (list)
      :accessor elements-of
      :type list)
     (capacity
      :initargs :capacity
      :accessor capacity-of
      :type (or (integer 0)
  	      (eql :keyword)))))
  
  
  
  
  (defmethod fits? ((buf buffer) (obj object))
    (> (capacity-of buf)
       (+ (size obj)
  	(size (elements-of buf)))))
  
  
  (defmethod full? ((buf buffer))
    (= (size (elements-of buf))
       (capacity-of buf)))
  
  
  (defmethod empty? ((buf buffer))
    (zerop (size (elements-of buf))))
  
  
  (defmethod n-input ((buf buffer) (new object))
  
negative.code: (defpackage :org.altervista.rjack.de-sim.buffer
    (:nicknames :de-sim.buffer)
    (:use :common-lisp :de-sim.core :de-sim.util)
    (:export :buffer
  	   :elements-of
  	   :fits? :full? :empty?
  	   :n-input :n-output))
  
  (in-package :de-sim.buffer)
  
  