--- make a product type, with Maybe return --> Module,lhs
-data ModLocation
- = SourceOnly ModuleName FilePath -- .hs
- | ObjectCode ModuleName FilePath FilePath -- .o, .hi
- | InPackage ModuleName PackageName
- | NotFound
-
-instance Outputable ModLocation where
- ppr (SourceOnly nm path_hs)
- = hsep [text "SourceOnly", text (show nm), text (show path_hs)]
- ppr (ObjectCode nm path_o path_hi)
- = hsep [text "ObjectCode", text (show nm),
- text (show path_o), text (show path_hi)]
- ppr (InPackage nm pkgname)
- = hsep [text "InPackage", text (show nm), text (show pkgname)]
-
-
-
-type Finder = ModuleName -> IO ModLocation
-
-ml_modname (SourceOnly nm _) = nm
-ml_modname (ObjectCode nm _ _) = nm
-ml_modname (InPackage nm _) = nm
-
-isPackageLoc (InPackage _ _) = True
-isPackageLoc _ = False