[if a ho file depends on a library we don't have loaded, then consider it out of date.
John Meacham <john@repetae.net>**20061123034901] hunk ./Ho/Build.hs 49
+import Ho.LibraryMap
hunk ./Ho/Build.hs 164
-        return $ Just (hh,ho { hoModules = fmap (const (Left dep)) (hoExports ho) })
+        if (all (`elem` loadedLibraries) (Map.keys $ hoLibraries ho)) then do
+            return $ Just (hh,ho { hoModules = fmap (const (Left dep)) (hoExports ho) })
+         else do
+            putErrLn $ "No library dep for ho file:" <+> fn
+            return Nothing
+
hunk ./Ho/LibraryMap.hs 1
-module Ho.LibraryMap
-    (libraryMapFind,libraryList
+module Ho.LibraryMap(
+    libraryMapFind,
+    loadedLibraries,
+    libraryList
hunk ./Ho/LibraryMap.hs 8
-import Options(options,optHlPath)
+import Options(options,optHlPath,optHls)
+import Control.Monad.Identity
hunk ./Ho/LibraryMap.hs 11
-import Data.Map as Map
+import qualified Data.Map as Map
hunk ./Ho/LibraryMap.hs 15
-type LibraryMap = Map LibraryName FilePath
+type LibraryMap = Map.Map LibraryName FilePath
hunk ./Ho/LibraryMap.hs 23
+
+loadedLibraries = runIdentity $ do
+    rs <- mapM libraryMapFind (optHls options)
+    return $ map fst rs
+
hunk ./Ho/LibraryMap.hs 44
-range low high = toList . fst . split high . snd . split low
+range low high = Map.toList . fst . Map.split high . snd . Map.split low
hunk ./Ho/LibraryMap.hs 49
-getLibraryMap fps = fmap unions $ mapM getPM fps
+getLibraryMap fps = fmap Map.unions $ mapM getPM fps