fix haddock submodule pointer
[ghc-hetmet.git] / compiler / iface / BinIface.hs
index c80628b..b9ad5c8 100644 (file)
@@ -1301,10 +1301,14 @@ instance Binary IfaceNote where
 -- to avoid re-building it in various places.  So we build the OccName
 -- when de-serialising.
 
+-- NOTE regarding HetMet extensions: this screws up Adam's heinous
+-- hide-the-syntactical-level-in-the-namespace trick.
+
 instance Binary IfaceDecl where
     put_ bh (IfaceId name ty details idinfo) = do
            putByte bh 0
            put_ bh (occNameFS name)
+           put_ bh (getOccNameDepth name)
            put_ bh ty
            put_ bh details
            put_ bh idinfo
@@ -1339,10 +1343,11 @@ instance Binary IfaceDecl where
            h <- getByte bh
            case h of
              0 -> do name    <- get bh
+                     depth   <- get bh
                      ty      <- get bh
                      details <- get bh
                      idinfo  <- get bh
-                      occ <- return $! mkOccNameFS varName name
+                      occ <- return $! mkOccNameFS (varNameDepth depth) name
                      return (IfaceId occ ty details idinfo)
              1 -> error "Binary.get(TyClDecl): ForeignType"
              2 -> do
@@ -1453,13 +1458,15 @@ instance Binary IfaceConDecl where
 instance Binary IfaceClassOp where
    put_ bh (IfaceClassOp n def ty) = do        
        put_ bh (occNameFS n)
+       put_ bh (getOccNameDepth n)
        put_ bh def     
        put_ bh ty
    get bh = do
        n <- get bh
+       depth <- get bh
        def <- get bh
        ty <- get bh
-        occ <- return $! mkOccNameFS varName n
+        occ <- return $! mkOccNameFS (varNameDepth depth) n
        return (IfaceClassOp occ def ty)
 
 instance Binary IfaceRule where
@@ -1508,14 +1515,18 @@ instance Binary name => Binary (AnnTarget name) where
                   return (ModuleTarget a)
 
 instance Binary IfaceVectInfo where
-    put_ bh (IfaceVectInfo a1 a2 a3) = do
+    put_ bh (IfaceVectInfo a1 a2 a3 a4 a5) = do
            put_ bh a1
            put_ bh a2
            put_ bh a3
+           put_ bh a4
+           put_ bh a5
     get bh = do
            a1 <- get bh
            a2 <- get bh
            a3 <- get bh
-           return (IfaceVectInfo a1 a2 a3)
+           a4 <- get bh
+           a5 <- get bh
+           return (IfaceVectInfo a1 a2 a3 a4 a5)