Use System.FilePath
[ghc-hetmet.git] / compiler / iface / MkIface.lhs
index e569c47..43bae8f 100644 (file)
@@ -233,6 +233,7 @@ import ListSetOps
 import Control.Monad
 import Data.List
 import Data.IORef
+import System.FilePath
 \end{code}
 
 
@@ -465,7 +466,7 @@ mkIface_ hsc_env maybe_old_iface
 -----------------------------
 writeIfaceFile :: DynFlags -> ModLocation -> ModIface -> IO ()
 writeIfaceFile dflags location new_iface
-    = do createDirectoryHierarchy (directoryOf hi_file_path)
+    = do createDirectoryHierarchy (takeDirectory hi_file_path)
          writeBinIface dflags hi_file_path new_iface
     where hi_file_path = ml_hi_file location
 
@@ -729,7 +730,7 @@ computeChangedOccs ver_fn this_module old_usages eq_info
     usg_modmap = listToUFM [ (usg_name usg, listToUFM (usg_entities usg))
                            | usg <- old_usages ]
 
-    get_local_eq_info :: GenIfaceEq NameSet -> GenIfaceEq OccSet
+    get_local_eq_info :: GenIfaceEq Name -> GenIfaceEq OccName
     get_local_eq_info Equal = Equal
     get_local_eq_info NotEqual = NotEqual
     get_local_eq_info (EqBut ns) = foldNameSet f Equal ns
@@ -759,12 +760,7 @@ computeChangedOccs ver_fn this_module old_usages eq_info
         where (occs, iface_eqs) = unzip pairs
     add_changes so_far other = so_far
 
-type OccIfaceEq = GenIfaceEq OccSet
-
-instance Outputable OccIfaceEq where
-  ppr Equal          = ptext SLIT("Equal")
-  ppr NotEqual       = ptext SLIT("NotEqual")
-  ppr (EqBut occset) = ptext SLIT("EqBut") <+> ppr (occSetElts occset)
+type OccIfaceEq = GenIfaceEq OccName
 
 changedWrt :: OccSet -> OccIfaceEq -> Bool
 changedWrt so_far Equal        = False