diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2012-12-23 15:49:29 +0000 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2012-12-23 15:49:29 +0000 |
commit | e5ccb4ee127c55a6a834cc65f28f202af773d93e (patch) | |
tree | 171e9e286447f042ef97885b4f3ba5520b168174 /compiler/iface/BinIface.hs | |
parent | 1ee1cd4194555e498d05bfc391b7b0e635d11e29 (diff) | |
parent | d2a5a9cfd57214ceec94130d82f95d5be45f2014 (diff) | |
download | haskell-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.hs | 27 |
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 |