         individual-file-map   (single-files files)
         canonical-source-dirs (set (map #(.getCanonicalPath %) dirs))
 
-        source-paths (concat (map str dirs)
-                             (distinct (map #(.getParent %) files)))
+        source-paths (distinct
+                      (concat (map str dirs)
+                              (map #(.getParent %) files)))
         
         valid-file?   (fn [file]
                         (and file

  (.startsWith child (str dir java.io.File/separator)))

;;; we are going to have to throttle this

(defn take-until-timeout [in]
  (let [time-out (timeout 50)]

    (go-loop []
      (when-let [v (<! throttle-chan)]
        (let [files (<! (take-until-timeout throttle-chan))]
          (when-let [result-files (not-empty (filter valid-file? (map :file (cons v files))))]
            (callback result-files)))
        (recur)))
    
    {:watcher watcher
     :throttle-chan throttle-chan}))

