anchor.diff:  
          (defmethod listen-to ((listener event-listener) (input-source ,name)
                                slot-name &optional index)
  -         (listen-to-control (get-control input-source slot-name index)
  -                            listener)))))
  +         (let ((control/s (get-control input-source slot-name index t)))
  +           (if (arrayp control/s)
  +               (loop :for control :across control/s :do
  +                  (listen-to-control control/s listener))
  +               (listen-to-control control/s listener)))))))
   
   ;;----------------------------------------------------------------------
  
positive.code:                 :for slot-name :in hidden-slot-names :collect
                  (let ((kwd (intern (symbol-name cname) :keyword))
                        (msg0 (format nil "SKITTER: ~a in ~a is a array of ~a"
                                     cname name type))
                        (msg1 (format nil "SKITTER: ~a in ~a is not an array of controls. No index is required"
                                     cname name)))
                    (if length
                        `(,kwd
                          (cond
  
negative.code:        ;; Type
         (,def (,name (:constructor ,constructor)
                      (:conc-name nil))
             ,@(mapcar #'gen-struct-slot-from-input-source-slot hidden-slots))
  
         ;; public constructor
         (defun ,(input-source-constructor-name name) ()
  