anchor.diff:  				(cond ((equal 'if (car expr)) (if-eval expr))
   							((equal 'set! (car expr)) (set-eval expr))
   							((equal 'quote (car expr)) (quote-eval expr))
  +							((equal 'lambda (car expr)) expr)
   							(t 
   								(multiple-value-setq (op flag) (get-function (car expr)))
   								(if (eql flag t)
  
negative.code: ;;; Sets a variable to given value which is either an atom or a function, TODO add environment/scope later
  ;;; (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
  (defun set-eval (expr)
  	(if (equal 'lambda (car (caddr expr)))
  		(set-function (cadr expr) (caddr expr)) 
  		(set-variable (cadr expr) (evall (caddr expr)))))
  	
  ;;; Hash table for holding user defined functions and variables 
  (defvar *sym-table* (make-hash-table :test #'equal))
  