anchor.diff:                               t)))
          (gtk-container-add window box)
          (gtk-box-pack-start box canvas)
  -       (gtk-box-pack-start box step-button)
  +       (gtk-box-pack-start box run-button)
          (gtk-box-pack-start box add-button)
          (gtk-widget-show-all window)))))
  
positive.code: 
  (defun make-ball ()
    (flet ((in-bounds-p (ball)
                        (and (>= (getf ball :x) (getf ball :radius))
                             (<= (getf ball :x) (- +canvas-width+ (getf ball :radius)))
                             (>= (getf ball :y) (getf ball :radius))
                             (<= (getf ball :y) (- +canvas-height+ (getf ball :radius)))))
           (make-ball ()
                      (list :time-step +time-step+
                            :radius (random-range +min-radius+ +max-radius+)
                            :x (random +canvas-width+)
                            :y (random +canvas-height+)
                            :dx (random-range (- +max-dx+) +max-dx+)
                            :dy (random-range (- +max-dy+) +max-dy+)
                            :color (random-color))))
      (do ((ball (make-ball) (make-ball)))
          ((in-bounds-p ball) ball))))
  
  (defun update-ball (ball)
    (incf (getf ball :x) (* (getf ball :dx) +time-step+))
    (incf (getf ball :y) (* (getf ball :dy) +time-step+))
    (when (or (< (getf ball :x) (getf ball :radius))
              (> (getf ball :x) (- +canvas-width+ (getf ball :radius))))
      (setf (getf ball :dx) (- (getf ball :dx))))
    (when (or (< (getf ball :y) (getf ball :radius))
              (> (getf ball :y) (- +canvas-height+ (getf ball :radius))))
      (setf (getf ball :dy) (- (getf ball :dy)))))
  
      ;;     self.dy += G_CONSTANT * self.time_step
      ;;     self.y += (self.dy * self.time_step)
      ;;     if (self.y-self.radius) < 0:
      ;;         self.y = self.radius
      ;;         self.temp_max_speed *= .8
      ;;         if self.temp_max_speed < .2 * self.max_speed:
      ;;             self.temp_max_speed = self.max_speed
      ;;         self.dy = self.temp_max_speed
  
  
  (defun draw-ball (ball cr)
    (apply #'cairo-set-source-rgb (cons cr (getf ball :color)))
  
negative.code:   (cairo-stroke cr))
  
  (defun random-color ()
    (let ((base (list (random 1.0) (random 1.0) (random 1.0))))
      (mapcar (lambda (x) (/ x (apply #'max base))) base)))
  
  (defun bounce-main ()
    (within-main-loop
     (let ((runningp nil)
           (balls (loop repeat +num-balls+ collect (make-ball)))
           (window (make-instance 'gtk-window
                                  :type :toplevel
                                  :title "Bouncing Balls"))
  