diff --git a/Data/ByteString/Internal/Pure.hs b/Data/ByteString/Internal/Pure.hs index 33a931201..e13d6c3b7 100644 --- a/Data/ByteString/Internal/Pure.hs +++ b/Data/ByteString/Internal/Pure.hs @@ -28,7 +28,7 @@ where import Prelude -import GHC.Exts (Char(..), indexCharOffAddr#, Ptr(..), ByteArray#, indexWord8Array#, Word8#, Int#, indexWord8OffAddr#) +import GHC.Exts (Ptr(..), ByteArray#, indexWord8Array#, Word8#, Int#, indexWord8OffAddr#) import GHC.Types (Int (..)) import GHC.Word (Word8(..)) import GHC.Int (Int8(..)) @@ -246,10 +246,10 @@ isValidUtf8' idx !len' = go 0 ---------------------------------------------------------------- -getDigit :: Int -> Char -getDigit (I# i) = C# (indexCharOffAddr# digits i) +getDigit :: Int -> Word8 +getDigit (I# i) = W8# (indexWord8OffAddr# digits i) where - digits = "0123456789abcdef"# + !digits = "0123456789abcdef"# putDigit :: Ptr a -> Int -> Int -> IO () putDigit !addr !off !i = pokeByteOff addr off (getDigit i)