anchor.diff:                                  :width-request +canvas-width+
                                   :height-request +canvas-height+))
            (box (gtk-box-new :vertical 2))
  -         (step-button (gtk-button-new-with-label "Step"))
  +         (run-button (gtk-button-new-with-label "Start"))
            (add-button (gtk-button-new-with-label "Add")))
  -     (labels ((update (widget)
  -                      (declare (ignore widget))
  -                      (dolist (ball balls) (update-ball ball))
  -                      (gtk-widget-queue-draw canvas)
  -                      t))
  +     (labels ((update (&optional widget)
  +                (declare (ignore widget))
  +                (dolist (ball balls) (update-ball ball))
  +                (gtk-widget-queue-draw canvas)
  +                t))
          (g-signal-connect window "destroy" (lambda (widget)
                                               (declare (ignore widget))
                                               (leave-gtk-main)))
  -       (g-signal-connect step-button "clicked" #'update)
  +       (g-signal-connect run-button "clicked"
  +                         (lambda (widget)
  +                           (declare (ignore widget))
  +                           (g-timeout-add (floor (* 1000 +time-step+))
  +                                          #'update)))
          (g-signal-connect add-button "clicked"
                            (lambda (widget)
                              (declare (ignore widget))
  
positive.code:   (cairo-stroke cr))
  
  (defun random-color ()
    (flet ((rand-val ()
                     (/ (float (random 100)) 100)))
      (list (rand-val) (rand-val) (rand-val))))
  
  (defun bounce-main ()
    (within-main-loop
     (let ((balls (loop repeat +num-balls+ collect (make-ball)))
           (window (make-instance 'gtk-window
                                  :type :toplevel
                                  :title "Bouncing Balls"))
  
negative.code:   (let ((day-names '("Monday" "Tuesday" "Wednesday"
                       "Thursday" "Friday" "Saturday" "Sunday")))
      (multiple-value-bind
            (second minute hour date month year day-of-week dst-p tz)
          (get-decoded-time)
        (declare (ignore dst-p))
        (format nil "~a ~d/~2,'0d/~d ~2,'0d:~2,'0d:~2,'0d (GMT~@d)"
  