[project @ 2000-10-16 15:21:48 by simonmar]
[ghc-hetmet.git] / ghc / compiler / main / Finder.lhs
index 8408501..b345755 100644 (file)
@@ -27,9 +27,22 @@ import IO
 import Monad
 \end{code}
 
+The Finder provides a thin filesystem abstraction to the rest of the
+compiler.  For a given module, it knows (a) which package the module
+lives in, so it can make a Module from a ModuleName, and (b) where the
+source, interface, and object files for a module live.
+
 \begin{code}
 type Finder = ModuleName -> IO (Maybe (Module, ModuleLocation))
 
+-- For a module in another package, the hs_file and obj_file
+-- components of ModuleLocation are undefined.  
+
+-- The locations specified by a ModuleLocation may or may not
+-- correspond to actual files yet: for example, even if the object
+-- file doesn't exist, the ModuleLocation still contains the path to
+-- where the object file will reside if/when it is created.
+
 data ModuleLocation
    = ModuleLocation {
        hs_file  :: FilePath,