anchor.diff:      #'(lambda ()
           (+ heading (random .3) -0.15))))
   
  -(defun bearing (self other)
  -  (let ((result (atan (- (y other) (y self)) (- (x other) (x self)))))
  -    (if (> (x self) (x other))
  -        (+ result pi)
  -        result)))
  -
   (defun main ()
     (within-main-loop
  -   (let ((runningp nil)
  +   (let ((runningp t)
            (actors (make-herd 20))
            (window (make-instance 'gtk-window
                                   :type :toplevel
  
positive.code:                                ((eq (status mover) 'content) .1))))
    (call-next-method))
  
  (defun random-heading ()
    (random (* 2 pi)))
  
  
negative.code:                          (lambda (widget cr)
                             (declare (ignore widget))
                             (let ((cr (pointer cr)))
                               (cairo-set-source-rgb cr 0.1 0.7 0.0)
                               (cairo-paint cr)
                               (dolist (actor actors) (draw actor cr))
                               (cairo-destroy cr)
  