This is great, thank you. If I have to wait any time I get antsy so I changed the interval to 3s. I also changed map to each and got rid of the "* redefining foo" noise.
(def reload-check (paths (o mtimes (table)))
(sleep 3)
(each p paths
(if (no (mtimes p))
(= (mtimes p) (mtime p))
(isnt (mtimes p) (mtime p))
(do
(= (mtimes p) (mtime p))
(tostring (load p)))))
(reload-check paths mtimes))