anchor.diff:                     (values))))))))))
   
   (defmacro define-logical-control
  -    ((name &key (type 'boolean) (initform nil)) internal-slots
  +    ((name &key (type 'boolean) (initform nil) decays) internal-slots
        &body control-forms)
     (assert control-forms () "SKITTER: ~a must have at least one control form"
             name)
  
positive.code:                      `(,slot-name nil :type (or null ,slot-type)))
                     control-slot-names
                     control-types))
  
         (defun ,add (input-source &key ,@add-arg-names)
           (let ((result (,constructor))
  
negative.code:                            :fill-pointer 0)))
         (defmethod control-listeners ((control ,name))
           (,(control-listeners-name name) control)))))
  
  
  ;; (define-logical-control (double-click :decays t)
  ;;     ((last-press nil integer))
  ;;   ((button boolean-state)
  ;;    (when (< (- timestamp last-press) 10)
  ;;      (fire t))
  ;;    (setf last-press timestamp)))
  