anchor.diff:          (evolve primitives actions conditionals args fargs fitness-function fitness-p
                   max-tree-depth member-count repeat-var percentage program-count
                   :generation
  -                (append (copy-population population-fitness percentage program-count)
  -                        (crossover-population population-fitness percentage program-count))
  +                (append (copy-population population-fitness copy-percentage program-count)
  +                        (crossover-population population-fitness crossover-percentage program-count))
                   :max-run-count (- max-run-count 1)))
         population-fitness)))
   
  
positive.code:       (quote tree))))
  
  (defun replace-subtree (tree nth-list replacement)
    (if (and (is-tree (cdr tree)) nth-list replacement)
      (macrolet
        ((macro-nth (atree list-nth)
  
negative.code:                                 (- max-tree-depth 1))))))))
  
  (defun generate-population (primitives actions conditionals max-tree-depth member-count)
    "Create a generation of random programs with population member-count."
    (loop for args upto (- member-count 1)
          collect (generate-program-tree primitives actions conditionals max-tree-depth)))
  
  (defun evaluate-tree (tree repeat-var args fargs)
    "Run a program with args as the name of the arguments
    and fargs being the evaluated result of args. Runs the program repeat-var times,
    each time feeding the output back to the input."
    (if (> repeat-var 0)
      (macrolet ((program (code) `(eval (list 'lambda args ,code))))
        (let ((result (apply (program tree) fargs)))
  