         (update-in [:filemap] (fnil merge {}) filemap))))
 
 (defn remove-names
+  "Returns an updated dependency tracker from which the namespaces
+  (symbols) have been removed. The :unload and :load lists indicate
+  the order in which namespaces should be un/reloaded to reflect this
+  change, as with add."
   [state names]
   (let [{:keys [load unload deps]} state
         known (set (dep/keys deps))

  (dosync (alter @#'clojure.core/*loaded-libs* disj lib)))

(defn reload-one
  "Executes one unload/reload operation; returns updated dependency
  tracker indicating errors and which namespaces remain to be
  removed/reloaded."
  [state]
  (let [{:keys [unload load]} state]
    (cond

                             load))))))

(defn remove-files
  "Returns an updated dependency tracker after removing files. The
  files must have been previously added to the dependency tracker
  using add-files."
  [state files]
  (-> state
      (remove-names (keep (:filemap state {}) files))
