anchor.diff:      (flet ((can-see-point (point)       ;TODO expand to limited forward vision
                (< (p2dm:distance-between-vectors position point) perception-range)))
         (ddp position perception-range :sight-range)
  -      (make-instance 'world
  -                     :boids (remove-if-not #'can-see-point
  -                                           (boids world)
  -                                           :key #'entity-position)
  +      (make-instance 'perceived-world
  +                     :friendlies (remove-if-not #'can-see-point
  +                                                (boids world)
  +                                                :key #'entity-position)
                        :food (food world)
                        :player (when (can-see-point (entity-position (player world)))
                                  (player world))))))
  
positive.code: 
  (defun make-default-boid-behaviours ()
    (list (lambda (boid world)                 ; cohesion
            (com boid (boids world)))
          (lambda (boid world)                 ; alignment
            (align boid (boids world)))
          (lambda (boid world)                 ; separation
            (separate boid (boids world)))
          (lambda (boid world)                 ; wall avoidance
            (avoid-walls boid))
          (lambda (boid world)
  
negative.code:   ((boids :initform '()
            :initarg :boids
            :accessor boids)
  
     (food :initform '()
           :initarg :food
           :accessor food)
  
     (player :initform (error "Player needs to be specified explicitly.")
             :initarg :player
             :accessor player)))
  
  (defclass perceived-world ()
    ((friendlies :initform '()
                 :initarg :friendlies
                 :accessor friendlies)
  
     (dangers :initform '()
              :initarg :dangers
              :accessor dangers)
  
     (food :initform '()
           :initarg :food
  