anchor.diff:      (when (not (= score 0))
         (setf score (/ score index)))
       ;;TODO penalize for mismatching number of points
  -    ;;TODO invert score
  +    (setf score (- 10000000 score)) ;;TODO find max
       score))
   
   (defun select (population scores)
  
positive.code: 
  (defun crossover (parent1 parent2)
    "Parents are integers."
    (let* ((min-length (if (> (integer-length parent1) (integer-length parent2))
  			 (integer-length parent2)
  			 (integer-length parent1)))
  
negative.code:   (set-color 0.0 0.0 0.0)
    (draw-string (font-loader app) (bukva app) 2000 -3500 :filled nil :size 250)
    (when (candidate app)
      ;TODO draw straight lines
      (loop for curve in (candidate app)
  	 do (draw-curve curve))))
  
  (defmethod exit ((app font-app))
    (zpb-ttf:close-font-loader (font-loader app))
    (when (thread-alive-p *main-loop*)
      (terminate-thread *main-loop*)))
  
  (defmethod key-pressed ((app font-app) key)
    (case key
      (#\r
       (when (thread-alive-p *main-loop*)
         (terminate-thread *main-loop*))
       (setf *main-loop* (make-thread 'main-loop :arguments (list app))))))
    
  
  (defun (setf bukva) (bukva app)
    (setf (slot-value app 'bukva) bukva)
  