Documentation

A ReadAction is a function which takes a Size which defines how many bytes
to read and a Timeout. The function returns an IO action which, when
executed, performs the actual read and returns the ByteString that was read
paired with a Status flag which indicates whether the transfer
Completed or TimedOut.

A WriteAction is a function which takes a ByteString to write and a
Timeout. The function returns an IO action which, when exectued, returns the
number of bytes that were actually written paired with a Status flag which
indicates whether the transfer Completed or TimedOut.