@@ -200,6 +200,7 @@ byte_offset n = n `shiftR` 3
200readBool :: S -> Bool
200readBool :: S -> Bool
201readBool (S bs n) = testBit (unsafeHead bs) (7-n)
201readBool (S bs n) = testBit (unsafeHead bs) (7-n)
203+{-# INLINE readWord8 #-}
203readWord8 :: Int -> S -> Word8
204readWord8 :: Int -> S -> Word8
204readWord8 n (S bs o)
205readWord8 n (S bs o)
205 -- no bits at all, return 0
206 -- no bits at all, return 0
@@ -220,7 +221,7 @@ readWord8 n (S bs o)
220 w' = (w `shiftr_w16` (16 - o - n)) .&. m
221 w' = (w `shiftr_w16` (16 - o - n)) .&. m
221 in fromIntegral w'
222 in fromIntegral w'
223−
224+{-# INLINE readWord16be #-}
224readWord16be :: Int -> S -> Word16
225readWord16be :: Int -> S -> Word16
225readWord16be n s@(S bs o)
226readWord16be n s@(S bs o)
@@ -246,6 +247,7 @@ readWord16be n s@(S bs o)
247 | otherwise = error "readWord16be: tried to read more than 16 bits"
248 | otherwise = error "readWord16be: tried to read more than 16 bits"
250+{-# INLINE readWord32be #-}
249readWord32be :: Int -> S -> Word32
251readWord32be :: Int -> S -> Word32
250readWord32be n s@(S _ o)
252readWord32be n s@(S _ o)
251 -- 8 or fewer bits, use readWord8
253 -- 8 or fewer bits, use readWord8
@@ -261,6 +263,7 @@ readWord32be n s@(S _ o)
261 | otherwise = error "readWord32be: tried to read more than 32 bits"
263 | otherwise = error "readWord32be: tried to read more than 32 bits"
266+{-# INLINE readWord64be #-}
264readWord64be :: Int -> S -> Word64
267readWord64be :: Int -> S -> Word64
265readWord64be n s@(S _ o)
268readWord64be n s@(S _ o)
266 -- 8 or fewer bits, use readWord8
269 -- 8 or fewer bits, use readWord8