@@ -253,15 +253,15 @@ crawlModule env@(Env _ root pkg srcDirs locals foreigns) mvar docsNeed name =
253 Nothing ->
253 Nothing ->
254 case Map.lookup name locals of
254 case Map.lookup name locals of
255 Nothing ->
255 Nothing ->
256− crawlFile env mvar docsNeed name path
256+ crawlFile env mvar docsNeed name path =<< File.getTime path
258 Just local@(Details.Local oldPath oldTime deps _) ->
258 Just local@(Details.Local oldPath oldTime deps _) ->
259 if path /= oldPath
259 if path /= oldPath
260− then crawlFile env mvar docsNeed name path
260+ then crawlFile env mvar docsNeed name path =<< File.getTime path
262 do newTime <- File.getTime path
262 do newTime <- File.getTime path
263 if oldTime < newTime || needsDocs docsNeed
263 if oldTime < newTime || needsDocs docsNeed
264− then crawlFile env mvar docsNeed name path
264+ then crawlFile env mvar docsNeed name path newTime
265 else crawlDeps env mvar deps (SCached local)
265 else crawlDeps env mvar deps (SCached local)
267 p1:p2:ps ->
267 p1:p2:ps ->
@@ -285,10 +285,9 @@ crawlModule env@(Env _ root pkg srcDirs locals foreigns) mvar docsNeed name =
285 return $ SBadImport Import.NotFound
285 return $ SBadImport Import.NotFound
288−crawlFile :: Env -> MVar StatusDict -> DocsNeed -> ModuleName.Raw -> FilePath -> IO Status
288+crawlFile :: Env -> MVar StatusDict -> DocsNeed -> ModuleName.Raw -> FilePath -> File.Time -> IO Status
289−crawlFile env@(Env _ root pkg _ _ _) mvar docsNeed expectedName path =
289+crawlFile env@(Env _ root pkg _ _ _) mvar docsNeed expectedName path time =
290− do time <- File.getTime path
291− source <- File.readUtf8 (root </> path)
290+ do source <- File.readUtf8 (root </> path)
293 case Parse.fromByteString pkg source of
292 case Parse.fromByteString pkg source of
294 Left err ->
293 Left err ->