anchor.diff:  		(evall (caddr expr))
   		(evall (cadddr expr))))
   
  -;;; Sets a variable to given value which is either an atom or a function, TODO add environment/scope later
  +;;; Sets a variable to given value which is either an atom or a function, 
   ;;; (set! var 2)
   ;;; (set! var (lambda (x) (* x x))) for example
  -;;; TODO remove the seperate case for functions there shouldn't be a need for a seperate case
  -;;; envt is the current environment that the set needs to modify
   (defun set-eval (expr)
  -	;(print "set-eval")
  -	;(print (caddr expr))
   	(set-variable (cadr expr) (evall (caddr expr))))
   
   ;;; Sets up the starting environment
  
positive.code: (defun get-function (op)
  	(gethash op *func-table*))
  
  ;;; TODO add &rest to handle arbitrary number of arguments
  (defun scheme-and (expr1 expr2)
  	(if (and (eql t expr1) (eql t expr2))
  		t 
  
negative.code: ;;; Basic Scheme Interpreter
  ;;; ========================
  
  ;;; Read-eval-print loop
  ;;; read takes s-expressions which are evaluated by evall,
  ;;; the initial environment and symbol table is also set up
  (defun revalp ()
  	(set-functions)
  	(if (equal nil *envts*)
  