anchor.diff:  
   (defun add-binding (var-name var-newname)
     "Add a binding to the environment. In our case, name and new name"
  -  (setf (car *environment*) (cons (cons var-name var-newname) (car *environment*))))
  +  (push (cons var-name var-newname) (car *environment*)))
   
   (defun add-ugly-binding (var-name)
     "Takes a variable name and creates a new ugly name and adds that to the environment. Returns the ugly name"
  
positive.code: (defun uglify-vars (program)
    "Entry point for our source transformation. Turn all var and function declarations and their related 
     references s into ugly ones"
    (let* ((*environment* (add-environment)))
      (transform-in-scope program)))
  
  (defun transform-in-scope (elm)
  
negative.code: (defparameter *environment* '()
    "list of assoc lists representing the current lexical environment")
  
  (defmacro with-added-environment (&body body)
    "Executes BODY with a new environment added to the environment stack"
    `(let ((*environment* (cons '() *environment*)))
      ,@body))
  
  (defun find-binding (var-name)
    "Looks through the set of environments and finds the most recently bound variable, returns its bound value"
  