anchor.diff:                                  conditional-list
                                   (- max-tree-depth 1))))))))
   
  -(defun generate-population (primitives actions conditionals max-tree-depth &optional (member-count 1000))
  +(defun generate-population (primitives actions conditionals max-tree-depth member-count)
     (loop for args upto (- member-count 1)
           collect (generate-program-tree primitives actions conditionals max-tree-depth)))
   
  
positive.code:       (quote tree))))
  
  (defun replace-subtree (tree nth-list replacement)
    (if nth-list
      (macrolet
        ((macro-nth (atree list-nth)
                    `(eval (list 'lambda '(tree replacement)
                                 (list 'setf (recursive-nth ,atree ,list-nth) 'replacement)))))
        (let ((setf-return (funcall (macro-nth tree nth-list) tree replacement)))
          tree))
      tree))
  
  (defun crossover (mother father)
    (let* ((father-st (pick-random-subtree father))
           (mother-st-acc (pick-random-subtree mother father))
           (mother-st (replace-subtree mother mother-st-acc father-st)))
      mother-st))
  
  
negative.code:   (let ((branches (cdr tree)))
      (if (is-tree branches)
        (let* ((pick-number (random (length branches)))
               (acc (append acc (list (+ 1 pick-number))))
               (pick (nth pick-number branches)))
          (if (fair-coin 75)
            (pick-random-subtree pick replacement acc)
            (if replacement acc pick)))
        (if replacement acc tree))))
  
  (defun recursive-nth (tree nth-list)
    (let ((target (nth (car nth-list) tree)))
  