diff --git a/lib/CheckDir.hs b/lib/CheckDir.hs
index c7fbc5a0caab011af962c396d6a19810981a8852..49b3774e86d8047da33daffafa0eec5f874425e3 100644
--- a/lib/CheckDir.hs
+++ b/lib/CheckDir.hs
@@ -253,7 +253,7 @@ recursiveCheckDir'
   -> Map FilePath (MapResult Full)
   -- ^ accumulator for map results
   -> IO (Map FilePath (MapResult Full))
-recursiveCheckDir' config prefix paths acc = do
+recursiveCheckDir' config prefix paths !acc = do
 
   -- lint all maps in paths. The double fmap skips maps which cause IO errors
   -- (in which case loadAndLintMap returns Nothing); appropriate warnings will
@@ -261,7 +261,7 @@ recursiveCheckDir' config prefix paths acc = do
   lints <-
     let lintPath p = fmap (fmap (p,)) (loadAndLintMap config (prefix </> p) depth)
           where depth = length (splitPath p) - 1
-    in mapMaybeM lintPath paths
+    in mapMaybeM lintPath paths >>= evaluateNF
 
 
   let mapdeps = setFromList (concatMap extractDeps lints)