IOData Wrapper for hGetContentsNote: This operation uses lazy I/O. Use NFData to force
all data to be read and consequently the internal file handle to be
closed.
Read n bytes *or* characters, depending on the implementation into a
ByteString, directly from the specified Handle
Whether or not this function is lazy depends on the instance; laziness
is preferred.