Remove the distinction between data and newtype families
[ghc-hetmet.git] / compiler / iface / BinIface.hs
index 9bdb7b6..bea0de1 100644 (file)
@@ -216,7 +216,7 @@ fromOnDiskName arr nc (pid, mod_name, occ) =
         let 
                 us        = nsUniqs nc
                 uniq      = uniqFromSupply us
-                name      = mkExternalName uniq mod occ noSrcLoc
+                name      = mkExternalName uniq mod occ noSrcSpan
                 new_cache = extendNameCache cache mod occ name
         in        
         case splitUniqSupply us of { (us',_) -> 
@@ -293,7 +293,8 @@ instance Binary ModIface where
                 mi_insts     = insts,
                 mi_fam_insts = fam_insts,
                 mi_rules     = rules,
-                mi_rule_vers = rule_vers }) = do
+                mi_rule_vers = rule_vers,
+                 mi_vect_info = vect_info }) = do
        put_ bh mod
        put_ bh is_boot
        put_ bh mod_vers
@@ -310,6 +311,7 @@ instance Binary ModIface where
        put_ bh fam_insts
        lazyPut bh rules
        put_ bh rule_vers
+        put_ bh vect_info
 
    get bh = do
        mod_name  <- get bh
@@ -328,6 +330,7 @@ instance Binary ModIface where
        fam_insts <- {-# SCC "bin_fam_insts" #-} get bh
        rules     <- {-# SCC "bin_rules" #-} lazyGet bh
        rule_vers <- get bh
+        vect_info <- get bh
        return (ModIface {
                 mi_module    = mod_name,
                 mi_boot      = is_boot,
@@ -346,6 +349,7 @@ instance Binary ModIface where
                 mi_fam_insts = fam_insts,
                 mi_rules     = rules,
                 mi_rule_vers = rule_vers,
+                 mi_vect_info = vect_info,
                        -- And build the cached values
                 mi_dep_fn    = mkIfaceDepCache deprecs,
                 mi_fix_fn    = mkIfaceFixCache fixities,
@@ -1148,18 +1152,16 @@ instance Binary OverlapFlag where
 instance Binary IfaceConDecls where
     put_ bh IfAbstractTyCon = putByte bh 0
     put_ bh IfOpenDataTyCon = putByte bh 1
-    put_ bh IfOpenNewTyCon = putByte bh 2
-    put_ bh (IfDataTyCon cs) = do { putByte bh 3
+    put_ bh (IfDataTyCon cs) = do { putByte bh 2
                                  ; put_ bh cs }
-    put_ bh (IfNewTyCon c)  = do { putByte bh 4
+    put_ bh (IfNewTyCon c)  = do { putByte bh 3
                                  ; put_ bh c }
     get bh = do
            h <- getByte bh
            case h of
              0 -> return IfAbstractTyCon
              1 -> return IfOpenDataTyCon
-             2 -> return IfOpenNewTyCon
-             3 -> do cs <- get bh
+             2 -> do cs <- get bh
                      return (IfDataTyCon cs)
              _ -> do aa <- get bh
                      return (IfNewTyCon aa)
@@ -1217,4 +1219,11 @@ instance Binary IfaceRule where
            a7 <- get bh
            return (IfaceRule a1 a2 a3 a4 a5 a6 a7)
 
+instance Binary IfaceVectInfo where
+    put_ bh (IfaceVectInfo a1) = do
+           put_ bh a1
+    get bh = do
+           a1 <- get bh
+           return (IfaceVectInfo a1)
+