anchor.diff:                                                                  ;; FIX: don't show arguments that are set to the defaults?
                                                                   ))
                                                             slots))))))
  -         (defclass ,name-pstream (,name ,super-pstream)
  +         (defclass ,name-pstream (,super-pstream ,name)
              ,(mapcar #'desugar-slot (remove-if-not #'state-slot-p slots))
              (:documentation ,(format nil "pstream for `~a'." (string-downcase (symbol-name name)))))
            ,(let* ((gen-func-p (or (null creation-function)
  
positive.code:    (pstream-offset :initform 0 :documentation "The current offset in the pstream's history that `next' should read from. For example, if `peek' is used on the pstream once, this would be -1.")
     (pstream-count :initarg :pstream-count :reader pstream-count :documentation "How many times previously a pstream was made of this pstream's parent. For example, if it was the first time `as-pstream' was called on the pattern, this will be 0."))
    (:documentation "\"Pattern stream\". Keeps track of the current state of a pattern in process of yielding its outputs."))
  
  (defmethod events-in-range ((pstream pstream) min max)
    (loop :while (and (<= (beat pstream) max)
  
negative.code: ;;; pstream
  
  (defclass pstream (pattern)
    ((number :initform 0 :documentation "The number of outputs yielded from the pstream.")
     (pattern-stack :initform (list) :documentation "The stack of pattern pstreams embedded in this pstream.")
     (history :initform (list) :documentation "The history of outputs yielded by the pstream.") ;; FIX: should this be turned into an array instead?
     (beat :initform 0 :reader beat :documentation "The number of beats that have elapsed since the start of the pstream.")
  