hGetArray: wrong result length returned.
Merge to STABLE (if that's still on.)
let remaining = count - copied
if remaining > 0
then do rest <- readChunk fd is_stream ptr copied remaining
let remaining = count - copied
if remaining > 0
then do rest <- readChunk fd is_stream ptr copied remaining
else return count
readChunk :: FD -> Bool -> RawBuffer -> Int -> Int -> IO Int
else return count
readChunk :: FD -> Bool -> RawBuffer -> Int -> Int -> IO Int