@@ -217,7 +217,11 @@ readArrayUpto size (Handle fd) = do
217217 -- ptr <- mallocPlainForeignPtrAlignedBytes size (alignment (undefined :: Word8))
218218 withForeignPtr ptr $ \p -> do
219219 -- n <- hGetBufSome h p size
220+#if MIN_VERSION_base(4,15,0)
221+ n <- RawIO.read fd p 0 size
222+#else
220223 n <- RawIO.read fd p size
224+#endif
221225 -- XXX shrink only if the diff is significant
222226 -- Use unsafeFreezeWithShrink
223227 return $
@@ -235,7 +239,11 @@ writeArray :: Storable a => Handle -> Array a -> IO ()
235239writeArray _ arr | A.length arr == 0 = return ()
236240writeArray (Handle fd) arr = withForeignPtr (aStart arr) $ \p ->
237241 -- RawIO.writeAll fd (castPtr p) aLen
242+#if MIN_VERSION_base(4,15,0)
243+ RawIO.write fd (castPtr p) 0 aLen
244+#else
238245 RawIO.write fd (castPtr p) aLen
246+#endif
239247 {-
240248 -- Experiment to compare "writev" based IO with "write" based IO.
241249 iov <- A.newArray 1