> The impl for this kind of stuff is already in there:
>
> hFillBufBA :: Handle -> ByteArray Int -> Int -> IO Int
> hPutBufBA :: Handle -> ByteArray Int -> Int -> IO ()
>
> hFillBuf :: Handle -> Addr -> Int -> IO Int
> hPutBuf :: Handle -> Addr -> Int -> IO ()
>
> all available from PrelHandle.
Yes, that's why we proposed them ;-)
Actually the implementations of these functions have some problems with
blocking (specifically, blocking part way through the transfer doesn't work
properly, as I recall).
Cheers,
Simon