anchor.diff:                                 ((eq (status sheep) 'content) .1))))
     (call-next-method))
   
  -(defmethod draw :around (object cr)
  +(defmethod draw :around (cr object)
     (when cr (call-next-method)))
   
  -(defmethod draw (actor cr)
  +(defmethod draw (cr actor)
     (cairo-set-source-rgb cr 0.8 0.4 0.2)
     (cairo-arc cr (x actor) (- +drawing-area-height+ (y actor)) 5 0 (* 2 pi))
     (cairo-fill cr)
  
positive.code:                              (cairo-set-source-rgb cr 0.1 0.7 0.0)
                               (cairo-paint cr)
                               (dolist (actor (actors environment))
                                 (draw actor cr))
                               (cairo-destroy cr)
                               t)))
         (gtk-container-add window box)
  
negative.code: 
  (defgeneric add-actor (environment actor))
  (defgeneric update (object))
  (defgeneric draw (cr object))
  (defgeneric draw-label (cr actor))
  (defgeneric herd (sheep))
  
  (defclass actor ()
    ((x
      :initarg :x
      :accessor x
      :initform (error "must supply x coordinate"))
     (y
      :initarg :y
      :accessor y
      :initform (error "must supply y coordinate"))
     (name
      :initarg :name
      :accessor name
  