anchor.diff:                                                       (/ 1.0 too-close-cnt)))
                  (too-close-center-dist (p2dm:distance-between-vectors (entity-position boid)
                                                                        too-close-center))
  -               (lr (linear-repulsion +min-boid-separation+ too-close-center-dist)))
  +               (lr (aggressive-repulsion +min-boid-separation+ too-close-center-dist)))
             (static-priority (ddv (entity-position boid)
                                   (p2dm:scaled-vector (p2dm:subtract-vectors (entity-position boid)
                                                                              too-close-center)
  
positive.code:            :accessor sheep-black-p)))
  
  (defmethod draw-entity ((sheep sheep))
    (with-slots (position velocity color hunger blackp)
        sheep
      (draw-sheep position (- (p2dm:vector-angle-2d velocity) (/ pi 2)) color)))
  
  
  
negative.code: (defun linear-repulsion (radius distance)
    (float (clamp (/ (- radius distance) radius) 0 1)))
  
  (defun aggressive-repulsion (radius distance &optional (factor 10.0))
    ;; y = - 2^(-10(1-x)) + 1
    (let ((x (clamp (/ distance radius) 0 1)))
      (values (float (1+ (- (expt 2 (* (- factor) (- 1 x))))))
              (float x))))
  
  (defun make-default-boid-behaviours ()
    (list (lambda (boid world)                 ; cohesion
  