anchor.diff:  (defun crossover (length-of-chromosome size-of-population population)
     "Take a pruned hash-table.  Effect crossover.  The resulting hash does not have to be full-sized."
     (labels ((do-cross (listorig)
  -	   (format t "~&inside do-cross, the population is ~A" listorig)
  +;	   (format t "~&inside do-cross, the population is ~A" listorig)
   	   (let* ((list (mapcar #'first listorig))
   		  (p1 (copy-list  (nth (random (length list)) list)))
   		  (p2 (copy-list  (nth (random (length list)) list)))
  -		  (cross-point (random (length p1))))
  +		  (cross-point (random (length p1)))) ;Since length starts from 1, and #'subseq starts from 0.
   	     (rotatef (subseq p1 cross-point) (subseq p2 cross-point))
   ;	     (format t "~&p1= ~A , p2 = ~A" p1 p2)
   	     (if (member p1 list :test #'equal)
  
positive.code: 
  (defun find-fitnesses (chromosome)
    "Take a hash of chromosomes and return their relative fitness-levels in the form of a hash-table"
    (format t "~&Begin find-fitnesses")
    (mapc #'(lambda (k)
  	    (setf (second k)
  		  (first (nn (first k)))))
  	chromosome)
    chromosome)
  
  (defun prune-population (size-of-population chromosome)
    "Take a hash-table and remove 1/3 worst chromosomes."
  
negative.code: 
  (defun recursive-mutation (size-of-population population)
    ""
    (labels ((do-mutate (list-0)
  ;	     (format t "~&inside do-mutate, the population is ~A" list-0)
  	     (let* ((list (mapcar #'first list-0))
  		    (p1 (copy-list (nth (random (length list)) list)))
  		    (mutate-point (random (length p1)))) ;Since length starts from 1, and we are going to be using this on #'nth, which starts from 0.
  	       (if (zerop (nth mutate-point p1))
  		   (setf (nth mutate-point p1) 1)
  		   (setf (nth mutate-point p1) 0))
  	       (if (member p1 list :test #'equal)
  		   (do-mutate list-0)
  		   p1))))
      (if (>= (length population)
  	    size-of-population)
  	population
  	(let ((new-key (do-mutate (copy-tree population))))
  	  (format t "~&recursive-mutation returns ~A" (list (list new-key 'mutation) population))
  	  (recursive-mutation size-of-population (push (list new-key 'mutation) population))))))
  
  (defun ga (length-of-chromosome size-of-population number-of-generations)
    "Run the GA through a given number of generations and return a list of chromosomes that made the final cut"
  