     (apply set/union (map #(deps-from-libspec nil %) (rest form)))))
 
 (defn deps-from-ns-decl
-  "Given a (quoted) ns declaration, returns a set of symbols naming
-  the dependencies of that namespace.  Handles :use and :require
-  clauses but not :load."
+  "Given an (ns...) declaration form (unevaluated), returns a set of
+  symbols naming the dependencies of that namespace.  Handles :use and
+  :require clauses but not :load."
   [decl]
   (apply set/union (map deps-from-ns-form decl)))

  (map second (find-ns-decls-in-jarfile jarfile)))


;;; Finding namespaces anywhere on CLASSPATH

(defn find-ns-decls-on-classpath
  "Searches CLASSPATH (both directories and JAR files) for Clojure
  source files containing (ns ...) declarations.  Returns a sequence
  of the unevaluated ns declaration forms."
  []
  (concat
   (mapcat find-ns-decls-in-dir (classpath/classpath-directories))
   (mapcat find-ns-decls-in-jarfile (classpath/classpath-jarfiles))))

(defn find-namespaces-on-classpath
  "Searches CLASSPATH (both directories and JAR files) for Clojure
  source files containing (ns ...) declarations.  Returns a sequence
  of the symbol names of the declared namespaces."
  []
  (map second (find-ns-decls-on-classpath)))


;;; Parsing dependencies


(defn clojure-sources-in-jar
  "Returns a sequence of filenames ending in .clj found in the JAR file."
  [^JarFile jar-file]
  (filter #(.endsWith ^String % ".clj") (filenames-in-jar jar-file)))

(defn read-ns-decl-from-jarfile-entry
  "Attempts to read a (ns ...) declaration from the named entry in the
