summaryrefslogtreecommitdiff
path: root/compiler/iface/BinIface.hs
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2012-12-23 15:49:29 +0000
committerSimon Peyton Jones <simonpj@microsoft.com>2012-12-23 15:49:29 +0000
commite5ccb4ee127c55a6a834cc65f28f202af773d93e (patch)
tree171e9e286447f042ef97885b4f3ba5520b168174 /compiler/iface/BinIface.hs
parent1ee1cd4194555e498d05bfc391b7b0e635d11e29 (diff)
parentd2a5a9cfd57214ceec94130d82f95d5be45f2014 (diff)
downloadhaskell-e5ccb4ee127c55a6a834cc65f28f202af773d93e.tar.gz
Merge branch 'master' of http://darcs.haskell.org/ghc
Conflicts: compiler/basicTypes/MkId.lhs compiler/iface/IfaceSyn.lhs
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 7f612ec970..cf9402a74e 100644
--- a/compiler/iface/BinIface.hs
+++ b/compiler/iface/BinIface.hs
@@ -1047,7 +1047,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
@@ -1059,7 +1059,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
@@ -1354,12 +1354,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
@@ -1399,9 +1398,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
@@ -1431,17 +1440,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