X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Futils%2FBinary.hs;h=466a515dfc631324b059f059e6c39f37bbf299f1;hp=ad048b6674d41ad9c4734cba37361a5d4c84511d;hb=fcf6b22d0478be20e27c2245f3e34dd272e12522;hpb=7f0471be1cfe0ef6110ef7fdd8132d85387d0b21 diff --git a/compiler/utils/Binary.hs b/compiler/utils/Binary.hs index ad048b6..466a515 100644 --- a/compiler/utils/Binary.hs +++ b/compiler/utils/Binary.hs @@ -467,6 +467,14 @@ instance (Binary a, Binary b) => Binary (Either a b) where -- yes, we need Binary Integer and Binary Rational in basicTypes/Literal.lhs instance Binary Integer where + -- XXX This is hideous + put_ bh i = put_ bh (show i) + get bh = do str <- get bh + case reads str of + [(i, "")] -> return i + _ -> fail ("Binary Integer: got " ++ show str) + + {- put_ bh (S# i#) = do putByte bh 0; put_ bh (I# i#) put_ bh (J# s# a#) = do putByte bh 1 @@ -484,6 +492,7 @@ instance Binary Integer where sz <- get bh (BA a#) <- getByteArray bh sz return (J# s# a#) +-} -- As for the rest of this code, even though this module -- exports it, it doesn't seem to be used anywhere else