anchor.diff:                           (lambda (widget)
                              (declare (ignore widget))
                              (setf runningp nil)))
  +       (g-signal-connect step-button "clicked"
  +                         (lambda (widget)
  +                           (declare (ignore widget))
  +                           (update-all)))
          (g-signal-connect drawing-area "draw"
                            (lambda (widget cr)
                              (declare (ignore widget))
  
positive.code: 
  (defmethod draw (actor cr)
    (cairo-set-source-rgb cr 0.8 0.4 0.2)
    (cairo-arc cr (x actor) (- +drawing-area-height+ (y actor)) 3 0 (* 2 pi))
    (cairo-fill cr)
    (cairo-set-source-rgb cr 0.0 0.0 0.0)
    (cairo-set-line-width cr 1)
    (cairo-arc cr (x actor) (- +drawing-area-height+ (y actor)) 3 0 (* 2 pi))
    (cairo-stroke cr)
    (cairo-move-to cr (+ 5 (x actor)) (+ 5 (- +drawing-area-height+ (y actor))))
    (cairo-select-font-face cr "serif" 0 1)
  
negative.code: (defmethod update (actor))
  
  (defclass mover (actor)
    ((direction-fn
      :initarg :direction-fn
      :accessor direction-fn
      :initform (make-meander))
     (motivation
      :initarg :motivation
      :accessor motivation
      :initform 1.0)
     (heading
      :accessor heading
      :initform (random-heading))
     (max-speed
      :initarg :max-speed
      :accessor max-speed
      :initform 1.0)
     (name
      :initform 'mover)
     (status
      :initform 'meandering)))
  
  (defmethod draw ((actor mover) cr)
    (cairo-set-source-rgb cr 0.0 0.0 1.0)
    (cairo-set-line-width cr 3.0)
    (cairo-move-to cr (x actor) (- +drawing-area-height+ (y actor)))
    (cairo-line-to cr
                   (+ (x actor) (* 15 (cos (heading actor))))
                   (- +drawing-area-height+ (+ (y actor) (* 9 (sin (heading actor))))))
    (cairo-stroke cr)
    (call-next-method))
  
  (defclass sheep (mover)
    ((herd
  