anchor.diff:  (defclass font-app (base-app)
     ((font-loader :accessor font-loader)
      (bukva :accessor bukva)
  -   (candidate :accessor candidate)))
  +   (candidate :accessor candidate :initform '())))
   
   (defmethod setup ((app font-app))
     (set-background 0.25 0.63 0.54))
  
positive.code:      collect (make-chromosome chromosome-length)))
  
  (defun make-chromosome (chromosome-length)
    "Chromosome length is the number of contours for a character, mutiply by three for each contour."
    ;;todo no magick numbers
    ;;todo this creates only one coordinate per control point
    (let ((chromosome 0))
      (loop for i below (* chromosome-length 3) by 3
         do (loop for k below 3
  	     do (setf chromosome (dpb (random 10000) (byte *allele-size* (* *allele-size* (+ k i))) chromosome))))
      chromosome))
  
  (defun chromosome->coordinates (chromosome)
    (let* ((contour-count (/ (ceiling (/ (integer-length chromosome) *allele-size*)) 3))
  	 (contours (make-array contour-count)))
      (loop for i below contour-count
         do (setf (aref contours i)
  		(loop for k below 3
  		   collect (ldb (byte *allele-size* (* *allele-size* (+ i k))) chromosome))))
      contours))
  
negative.code: (defmethod draw ((app font-app))
    (clear)
    (set-color 0.0 0.0 0.0)
    (draw-string (font-loader app) (bukva app) 2000 -3500 :filled nil :size 250)
    (when (candidate app)
      (loop for curve in (candidate app)
  	 do (draw-curve curve))))
  
  (defmethod exit ((app font-app))
    (zpb-ttf:close-font-loader (font-loader app)))
  