anchor.diff:        (:export #:js-insertion-block #:xhtml-script-tag
   	       #:xhtml-script-block #:insert-script-here
   	       #:with-javascript-collector #:js-defined-p #:def-js-file
  -	       #:def-anon-js-file #:use-js-file #:add-js-snippet #:table-sorter
  +	       #:def-anon-js-file #:use-js-file #:js-file-used?
  +	       #:add-js-snippet #:table-sorter
   	       #:multi-row-table-sorter #:add-dojo-onload #:add-jquery-onload
   	       #:build-script-elements #:js-collector #:*js-collector*
   	       #:clear-js-collector #:add-new-js-snippet #:table-totaler))))
  
positive.code:   "retrieves a graph-node from the js-dependency-graph based on a symbol or url"
    (gethash key js-dependency-graph ))
  
  (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)))
  
negative.code: 
  (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)))
  
  (defmethod js-list ((js js-collector) &aux res)
    "gets the list of urls from a js collector (including dependencies)"
    (labels ((helper (url)
  	     (mapc #'helper (get-dependency-list url))
  	     (pushnew (get-url-from-key url *global-js-dependency-graph*)
  		      res :test #'string=)))
      (mapc #'helper (urls js))
      (nreverse res)))
  
  (defun get-dependency-list (key &key want-keys-p)
    "gets a list of all the URLs required for proper execution of a
  