summaryrefslogtreecommitdiff
path: root/compiler/iface/BinIface.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/iface/BinIface.hs')
-rw-r--r--compiler/iface/BinIface.hs27
1 files changed, 19 insertions, 8 deletions
diff --git a/compiler/iface/BinIface.hs b/compiler/iface/BinIface.hs
index 8226b426c3..8a110b4b33 100644
--- a/compiler/iface/BinIface.hs
+++ b/compiler/iface/BinIface.hs
@@ -1049,7 +1049,7 @@ instance Binary LeftOrRight where
_ -> return CRight }
instance Binary IfaceCoCon where
- put_ bh (IfaceCoAx n) = do { putByte bh 0; put_ bh n }
+ put_ bh (IfaceCoAx n ind) = do { putByte bh 0; put_ bh n; put_ bh ind }
put_ bh IfaceReflCo = putByte bh 1
put_ bh IfaceUnsafeCo = putByte bh 2
put_ bh IfaceSymCo = putByte bh 3
@@ -1061,7 +1061,7 @@ instance Binary IfaceCoCon where
get bh = do
h <- getByte bh
case h of
- 0 -> do { n <- get bh; return (IfaceCoAx n) }
+ 0 -> do { n <- get bh; ind <- get bh; return (IfaceCoAx n ind) }
1 -> return IfaceReflCo
2 -> return IfaceUnsafeCo
3 -> return IfaceSymCo
@@ -1356,12 +1356,11 @@ instance Binary IfaceDecl where
put_ bh a6
put_ bh a7
- put_ bh (IfaceAxiom a1 a2 a3 a4) = do
+ put_ bh (IfaceAxiom a1 a2 a3) = do
putByte bh 5
put_ bh (occNameFS a1)
put_ bh a2
put_ bh a3
- put_ bh a4
get bh = do
h <- getByte bh
@@ -1401,9 +1400,19 @@ instance Binary IfaceDecl where
_ -> do a1 <- get bh
a2 <- get bh
a3 <- get bh
- a4 <- get bh
occ <- return $! mkOccNameFS tcName a1
- return (IfaceAxiom occ a2 a3 a4)
+ return (IfaceAxiom occ a2 a3)
+
+instance Binary IfaceAxBranch where
+ put_ bh (IfaceAxBranch a1 a2 a3) = do
+ put_ bh a1
+ put_ bh a2
+ put_ bh a3
+ get bh = do
+ a1 <- get bh
+ a2 <- get bh
+ a3 <- get bh
+ return (IfaceAxBranch a1 a2 a3)
instance Binary ty => Binary (SynTyConRhs ty) where
put_ bh (SynFamilyTyCon a b) = putByte bh 0 >> put_ bh a >> put_ bh b
@@ -1433,17 +1442,19 @@ instance Binary IfaceClsInst where
return (IfaceClsInst cls tys dfun flag orph)
instance Binary IfaceFamInst where
- put_ bh (IfaceFamInst fam tys name orph) = do
+ put_ bh (IfaceFamInst fam group tys name orph) = do
put_ bh fam
+ put_ bh group
put_ bh tys
put_ bh name
put_ bh orph
get bh = do
fam <- get bh
+ group <- get bh
tys <- get bh
name <- get bh
orph <- get bh
- return (IfaceFamInst fam tys name orph)
+ return (IfaceFamInst fam group tys name orph)
instance Binary OverlapFlag where
put_ bh (NoOverlap b) = putByte bh 0 >> put_ bh b