anchor.diff:       do (when (> score current)
   	  (setf current score
   		index i))
  -     finally (return (values index current))))
  +     finally (if (< current 0)
  +		 (error "Negative score!!! ~a ~a" index current)
  +		 (return (values index current)))))
  
positive.code:        do (setf scores
   		(loop for chromosome in population
   		   collect (evaluate (chromosome->coordinates chromosome) start control end)))
  	 
         do (multiple-value-bind (index score)
   	      (get-best-chromosome-index scores)
   	    (when (= score 0) ;;Yay we found the perfect match ;;TODO relax this
   	      (return))
  	    
  	    (push-queue 
  	     (loop for coords across (chromosome->coordinates (nth index  population))
  		collect (coords->curve coords))
  	     queue))
  	 
         ;; selection
         do (let ((total-score (float (reduce '+ scores))))
  
negative.code: 
  (defmethod setup ((app font-app))
    (set-background 0.25 0.63 0.54))
  
  (defmethod update ((app font-app))
    ;;TODO collect all curves at once and draw them here
    (setf (candidate app) (try-pop-queue *message-queue*)))
  
  (defmethod draw ((app font-app))
    (clear)
  