anchor.diff:  ;; Function to get the root of a tree
   (defun get-root()
     (make-tree-node :data (make-node-data :score 0.0 :game-number 0 :lower-bound 0.0 :upper-bound 1.0)))
  -
  -;; Gets the root of the tree for the current node based on its ancestors
  -;; Incorrect function. Doesn't work :(
  -(defun find-root(node)
  -  (if(eq (tree-node-parent node) nil)
  -     node
  -     (find-root (tree-node-parent node))))
   
   ;; Function to initialize the sensory channels for the agent
   (defun init-sensory-channels()
  
positive.code: ;; Definition of the binary-tree node structure
  (defstruct tree-node
    (data)
    (parent)
    (left-child)
    (right-child))
  
  
negative.code:     (setq discrimination-results (run-discrimination feature-detectors scene))
      (if (eq discrimination-results nil)
          (progn
            (setf (aref *success-log* (- *current-game* 1)) 0)
            ;;(format t "FAIL!~C" #\linefeed)
            ;;(print (agent-feature-detectors agent))
            (expand-channel (agent-feature-detectors agent)))
          (progn
            (setf (aref *success-log* (- *current-game* 1)) 1)
            ;;(format t "SUCCESS!~C" #\linefeed)
            ;;(print (agent-feature-detectors agent))
            (reward-discrimination-trees discrimination-results)))
      (feature-detectors-pruning (agent-feature-detectors agent))))
  
  ;; Definition of the game. Main function to run.
  (defun exec-game()
    (let ((agent (make-agent)) (*current-game* 1) (*success-log* (make-array (+ *total-number-of-games* 1))))
      (loop for i from 0 below *total-number-of-games* do
           (progn
             (if(not (eq (find i *spy-loops*) nil))
  