anchor.diff:  (defun get-url-from-key (key js-dependency-graph)
     "gets the url for a key reguardles of whether it is a symbol or url (assuming it is in the graph)"
     (if (stringp key) key
  -		(let ((it (find-graph-node key js-dependency-graph)))
  -		  (when it
  -			 (js-graph-node-url it)))))
  +      (let ((it (find-graph-node key js-dependency-graph)))
  +	(when it
  +	  (js-graph-node-url it)))))
   
   (defun creates-circular-dependency-p (key dep-list js-dependency-graph &optional visited-list)
     "checks if inserting into key into a js-dependency-list will cause a unseemly circular relationships to the beautiful dependency graph.  And you wouldnt want thatn now would you"
     (let ((key-url (get-url-from-key key js-dependency-graph)))
  -	 (when key-url
  -		(or (find key-url visited-list :test #'equal)
  -			 (progn
  -				(push key-url visited-list)
  -				(some
  -				 (lambda (elem)
  -					(let ((graph-node (find-graph-node elem js-dependency-graph)))
  -					  (when graph-node
  -						 (creates-circular-dependency-p (js-graph-node-url graph-node)
  -																  (js-graph-node-dependency-list graph-node)
  -																  js-dependency-graph
  -																  visited-list))))
  -				 dep-list))))))
  +    (when key-url
  +      (or (find key-url visited-list :test #'equal)
  +	  (progn
  +	    (push key-url visited-list)
  +	    (some
  +	     (lambda (elem)
  +	       (let ((graph-node (find-graph-node elem js-dependency-graph)))
  +		 (when graph-node
  +		   (creates-circular-dependency-p (js-graph-node-url graph-node)
  +						  (js-graph-node-dependency-list graph-node)
  +						  js-dependency-graph
  +						  visited-list))))
  +	     dep-list))))))
   
   (defun add-graph-node (key val js-dependency-graph)
     (if (creates-circular-dependency-p key (js-graph-node-dependency-list val) js-dependency-graph)
  -		(error "Insertion will lead to a circular dependency graph ~% key:~a~%graph:~a" key js-dependency-graph )
  -		(setf (gethash key js-dependency-graph) val)))
  +      (error "Insertion will lead to a circular dependency graph ~% key:~a~%graph:~a" key js-dependency-graph )
  +      (setf (gethash key js-dependency-graph) val)))
   
   (defun make-js-collector ()
     "small quicky alias for make-instance 'js-collector)"
  
positive.code: 
  (defclass js-collector ()
    ((urls
  	 :initarg :urls
  	 :accessor urls
  	 :initform '()
  	 :documentation "a list that stores what urls are needed")))
  
  (defun find-graph-node (key js-dependency-graph)
    "retrieves a graph-node from the js-dependency-graph based on a symbol or url"
  
negative.code:  (use-js-file (url-or-JsName :depends-on '(a dependency list of urls and keyword names)) => has the side effect of adding a js-file to the js-collection
  With js-collector also appends all (non-nil) elements in body to the document"
    `(let* ((*js-collector* (make-js-collector)))
      (declare (special *js-collector*))
      (let ((body-rtn-list (list ,@body)))
        (values
         body-rtn-list
         (js-list *js-collector*)))))
  
  (defun make-script-tags-from-list (script-tag-function url-list)
    "script tag function is a function that accepts a url and creates script tags out of them"
    (mapcar
     (lambda (url)
       (funcall script-tag-function url))
     url-list))
  
  (defmacro js-insertion-block ((make-script-fn &key (insertion-point-symbol 'insert-script-here)) &body body)
    "creates an environment in which there are a function: (use-js-file url &key depends-on) which will declare your usage of a script file and a symbol-macro: as defined by the keyword argument insertion-point-symbol (defaults to 'insert-script-here) that will be the final location of all of the collected script tags in the body"
    (arnesi:with-unique-names (chillins js-url-list script-tags replacement-node parent )
      `(let ((,replacement-node)) 
        (symbol-macrolet ((,insertion-point-symbol 
  			 (if ,replacement-node
  			     (error "More than one script tag insertion point in a document is not allowed")
  			     (setf ,replacement-node (create-complete-element *document* "adw" "adw:replacement-node" '() '())))))
  	(multiple-value-bind (,chillins ,js-url-list)
  	    (with-javascript-collector
  	      ,@body)
  	  (let ((,script-tags (reverse
  			       (make-script-tags-from-list
  				,make-script-fn
  				,js-url-list))))
  	    (arnesi:if-bind ,parent (dom:parent-node ,replacement-node)
  	      (progn
  		(mapc
  		 (lambda (elem)
  		   (dom:insert-before ,parent elem ,replacement-node))
  		 ,script-tags)
  		(dom:remove-child ,parent ,replacement-node)
  		,chillins)
  	      (substitute ,script-tags ,replacement-node ,chillins ))))))))
  
  (defun xhtml-script-tag (url)
    (make-script-fn #'xhtml:script url))
  