anchor.diff:  
   ;;; pdef
   
  -(defpattern pdef (pattern)
  +(defpattern pdef (pattern) ;; FIX: make play method for pdef to avoid adding it twice to the clock. also need 'reset' method.
     ((key :initarg :key :accessor :key)
      (pattern :initarg :pattern :accessor :pattern))
     "A named pattern.")
  
positive.code: ;;; pattern
  
  (defclass pattern ()
    ((remaining :initarg :remaining :accessor :remaining :initform nil)
     ;; (number :initarg :number :accessor :number :initform 0)
     )
    (:documentation "Abstract pattern superclass."))
  
  (defmethod play ((item pattern))
  
negative.code:   (combine-events (event) *event*))
  
  (defgeneric play (item)
    (:documentation "Play an item (typically an event or pattern) according to the current *event-output-function*."))
  
  (defgeneric stop (item)
    (:documentation "Stop an item (typically a playing pattern) according to the current *event-output-function*."))
  
  (defparameter *tempo* 1
    "The current tempo in beats per second.")
  