anchor.diff:  
   (defclass pattern ()
     ((remaining :initarg :remaining :initform :inf)
  -   (quant :initarg :quant :initform 1 :accessor quant)
  +   (quant :initarg :quant :initform (list 1) :reader quant) ;; quant, phase, timing-offset
      (parent :initarg :parent :initform nil)
      (loop-p :initarg :loop-p :initform nil :accessor loop-p)
      (cleanup-functions :initarg :cleanup-functions :initform (list)))
     (:documentation "Abstract pattern superclass."))
  +
  +(defmethod (setf quant) (value (pattern pattern))
  +  (setf (slot-value pattern 'quant) (alexandria:ensure-list value)))
   
   (defgeneric next (pattern)
     (:documentation "Returns the next value of a pattern stream, function, or other object, advancing the pattern forward in the process.
  
positive.code:   (quant (pdef-pattern object)))
  
  (defmethod quant ((object null))
    1)
  
  (defmethod as-pstream ((pattern pdef))
    (with-slots (key) pattern
  
negative.code:            (lambda (value pattern)
               (declare (ignorable value pattern))
               ,@body))))
  
  (define-pbind-special-init-key remaining
    (setf (slot-value pattern 'remaining) (next value))
  