@@ -52,7 +52,7 @@ data UC s = UC s {-# UNPACK #-} !Int
52-- | /O(n)/ Convert a 'Stream Char' into a 'Text', using the given
52-- | /O(n)/ Convert a 'Stream Char' into a 'Text', using the given
53-- chunk size.
53-- chunk size.
54unstreamChunks :: Int -> Stream Char -> Text
54unstreamChunks :: Int -> Stream Char -> Text
55−unstreamChunks chunkSize (Stream next s0 len0)
55+unstreamChunks !chunkSize (Stream next s0 len0)
56 | isEmpty len0 = Empty
56 | isEmpty len0 = Empty
57 | otherwise = outer s0
57 | otherwise = outer s0
@@ -65,7 +65,7 @@ unstreamChunks chunkSize (Stream next s0 len0)
65 fill = do a <- A.new unknownLength
65 fill = do a <- A.new unknownLength
66 unsafeWrite a 0 x >>= inner a unknownLength s'
66 unsafeWrite a 0 x >>= inner a unknownLength s'
67 unknownLength = 4
67 unknownLength = 4
68− inner marr len s !i
68+ inner marr !len s !i
69 | i + 1 >= chunkSize = return (marr, UC s i)
69 | i + 1 >= chunkSize = return (marr, UC s i)
70 | i + 1 >= len = {-# SCC "unstreamChunks/resize" #-} do
70 | i + 1 >= len = {-# SCC "unstreamChunks/resize" #-} do
71 let newLen = min (len `shiftL` 1) chunkSize
71 let newLen = min (len `shiftL` 1) chunkSize