hunk ./Data/ByteString/Lazy/Num.hs 2 - (numCompare + ( numCompare + , NumBS(..) hunk ./Data/ByteString/Lazy/Num.hs 12 +data NumBS = NBS {unNBS :: L.ByteString} + deriving (Eq, Ord, Show) + hunk ./Data/ByteString/Lazy/Num.hs 16 -instance Num L.ByteString where +instance Num NumBS where hunk ./Data/ByteString/Lazy/Num.hs 20 - negate a = (L.replicate (L.length a) 0) - a + negate a = (NBS $ L.replicate (L.length (unNBS a)) 0) - a hunk ./Data/ByteString/Lazy/Num.hs 22 - signum a = a `seq` L.pack [1] - fromInteger i = L.pack $ go i [] + signum a = a `seq` NBS (L.pack [1]) + fromInteger i = NBS $ L.pack $ go i [] hunk ./Data/ByteString/Lazy/Num.hs 26 - go i acc | i < 0 = L.unpack $ (L.pack [0]) - (L.pack $ go (-i) acc) + go i acc | i < 0 = L.unpack $ unNBS $ (NBS $ L.pack [0]) - (NBS $ L.pack $ go (-i) acc) hunk ./Data/ByteString/Lazy/Num.hs 30 -instance Integral L.ByteString where +instance Integral NumBS where hunk ./Data/ByteString/Lazy/Num.hs 41 - toInteger a = snd $ foldl' acc (0,0) (L.unpack a) + toInteger (NBS a) = snd $ foldl' acc (0,0) (L.unpack a) hunk ./Data/ByteString/Lazy/Num.hs 47 -instance Real L.ByteString where +instance Real NumBS where hunk ./Data/ByteString/Lazy/Num.hs 50 -instance Enum L.ByteString where +instance Enum NumBS where hunk ./Data/ByteString/Lazy/Num.hs 53 - toEnum i = encode i + toEnum i = NBS $ encode i hunk ./Data/ByteString/Lazy/Num.hs 59 - if s > (L.replicate (L.length c) 0xFF) - c + if s > (NBS $ L.replicate (L.length (unNBS c)) 0xFF) - c hunk ./Data/ByteString/Lazy/Num.hs 61 - else s : (enumFromThen (s+c) c) + else s : enumFromThen (s + c) c hunk ./Data/ByteString/Lazy/Num.hs 69 -isMaxBound :: L.ByteString -> Bool -isMaxBound = L.all (== 0xFF) +isMaxBound :: NumBS -> Bool +isMaxBound = L.all (== 0xFF) . unNBS hunk ./Data/ByteString/Lazy/Num.hs 72 -isMinBound :: L.ByteString -> Bool -isMinBound = L.all (== 0x0) +isMinBound :: NumBS -> Bool +isMinBound = L.all (== 0x0) . unNBS hunk ./Data/ByteString/Lazy/Num.hs 77 - let byteCmp = normalized (\x y -> reverse (L.zipWith compare x y)) a b + let byteCmp = normalized (\(NBS x) (NBS y) -> reverse (L.zipWith compare x y)) a b hunk ./Data/ByteString/Lazy/Num.hs 83 -byteStrOp :: (Int -> Int -> Int) -> L.ByteString -> L.ByteString -> L.ByteString -byteStrOp op a b = +byteStrOp :: (Int -> Int -> Int) -> NumBS -> NumBS -> NumBS +byteStrOp op (NBS a) (NBS b) = hunk ./Data/ByteString/Lazy/Num.hs 86 - in L.pack ws + in NBS (L.pack ws) hunk ./Data/ByteString/Lazy/Num.hs 97 -normalized :: (L.ByteString -> L.ByteString -> a) -> -- The op - L.ByteString -> L.ByteString -> a -- lps to normalize -normalized op a b = let (a', b') = normalize a b in op a' b' +normalized :: (NumBS -> NumBS -> a) -> -- The op + NumBS -> NumBS -> a -- lps to normalize +normalized op a b = let (a', b') = normalize (unNBS a) (unNBS b) in op (NBS a') (NBS b') hunk ./Data/ByteString/Lazy/Num.hs 109 -asInteger :: (Integer -> Integer) -> L.ByteString -> L.ByteString +asInteger :: (Integer -> Integer) -> NumBS -> NumBS hunk ./Data/ByteString/Lazy/Num.hs 113 - L.ByteString -> L.ByteString -> L.ByteString + NumBS -> NumBS -> NumBS hunk ./Data/ByteString/Lazy/Num.hs 116 -instance Bits L.ByteString where +instance Bits NumBS where hunk ./Data/ByteString/Lazy/Num.hs 120 - complement a = L.map complement a + complement (NBS a) = NBS $ L.map complement a hunk ./Data/ByteString/Lazy/Num.hs 125 - in L.snoc (L.replicate (fromIntegral d) 0) (bit m) + in NBS $ L.snoc (L.replicate (fromIntegral d) 0) (bit m) hunk ./Data/ByteString/Lazy/Num.hs 131 - in case L.unpack (L.drop (fromIntegral d) a) of + in case L.unpack (L.drop (fromIntegral d) (unNBS a)) of hunk ./Data/ByteString/Lazy/Num.hs 134 - bitSize a = 8 * fromIntegral (L.length a) + bitSize = (*) 8 . fromIntegral . L.length . unNBS hunk ./NumLazyByteString.cabal 7 -description: Num instance for LPS -synopsis: Num instance for LPS +description: Num, Enum, Eq, Integral, Ord, Real, and Show instances for Lazy ByteStrings +synopsis: Num, Enum, Eq, Integral, Ord, Real, and Show instances for Lazy ByteStrings hunk ./NumLazyByteString.cabal 12 -cabal-version: >= 1.2 -tested-with: GHC == 6.10.1 -extra-source-files: Test/MD5.hs Test/md5test.hs +cabal-version: >= 1.6 +tested-with: GHC == 6.12.1 +extra-source-files: hunk ./NumLazyByteString.cabal 20 - Build-Depends: base == 4.*, bytestring, binary + Build-Depends: base >= 3.0 && <= 6.0, bytestring, binary