diff options
Diffstat (limited to 'compiler/iface/BinIface.hs')
-rw-r--r-- | compiler/iface/BinIface.hs | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/compiler/iface/BinIface.hs b/compiler/iface/BinIface.hs index 9390ee4377..ba1a7e28e2 100644 --- a/compiler/iface/BinIface.hs +++ b/compiler/iface/BinIface.hs @@ -1307,27 +1307,30 @@ instance Binary IfaceDecl where return (IfaceAxiom occ a2 a3) instance Binary IfaceAxBranch where - put_ bh (IfaceAxBranch a1 a2 a3) = do + put_ bh (IfaceAxBranch a1 a2 a3 a4) = do put_ bh a1 put_ bh a2 put_ bh a3 + put_ bh a4 get bh = do a1 <- get bh a2 <- get bh a3 <- get bh - return (IfaceAxBranch a1 a2 a3) + a4 <- get bh + return (IfaceAxBranch a1 a2 a3 a4) -instance Binary ty => Binary (SynTyConRhs ty) where - put_ bh (SynFamilyTyCon a b) = putByte bh 0 >> put_ bh a >> put_ bh b - put_ bh (SynonymTyCon ty) = putByte bh 1 >> put_ bh ty +instance Binary IfaceSynTyConRhs where + put_ bh IfaceOpenSynFamilyTyCon = putByte bh 0 + put_ bh (IfaceClosedSynFamilyTyCon ax) = putByte bh 1 >> put_ bh ax + put_ bh (IfaceSynonymTyCon ty) = putByte bh 2 >> put_ bh ty get bh = do { h <- getByte bh ; case h of - 0 -> do { a <- get bh - ; b <- get bh - ; return (SynFamilyTyCon a b) } + 0 -> do { return IfaceOpenSynFamilyTyCon } + 1 -> do { ax <- get bh + ; return (IfaceClosedSynFamilyTyCon ax) } _ -> do { ty <- get bh - ; return (SynonymTyCon ty) } } + ; return (IfaceSynonymTyCon ty) } } instance Binary IfaceClsInst where put_ bh (IfaceClsInst cls tys dfun flag orph) = do @@ -1345,19 +1348,17 @@ instance Binary IfaceClsInst where return (IfaceClsInst cls tys dfun flag orph) instance Binary IfaceFamInst where - put_ bh (IfaceFamInst fam group tys name orph) = do + put_ bh (IfaceFamInst fam 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 group tys name orph) + return (IfaceFamInst fam tys name orph) instance Binary OverlapFlag where put_ bh (NoOverlap b) = putByte bh 0 >> put_ bh b |