anchor.diff:      (car chromosome-place)))
   
   ;;;; helpers
  -(defun make-chromosome (chromosome-length &optional (range *coords-range*) (straight-prob 0.1))
  +(defun make-chromosome (chromosome-length &optional (range *coords-range*) (straight-prob 1.0))
     "Chromosome length is the number of contours for a character. Each contour consists of three pairs of control point coordinates. Every contour is a straight line with probability straight-prob. A straight line is denoted by a zero second control point."
     ;;todo no magick numbers
     (let ((chromosome 0))
  
positive.code: 
  (defvar *allele-size* 10)
  (defvar *coords-range* 1000)
  
  (defclass font-app (base-app)
    ((font-loader :accessor font-loader)
  
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)
  