ByteString hGet documentation is incomplete
All four versions of hGet for the various Data.!ByteString implementations claim that it "[reads] n bytes into a !ByteString." This is not always the case. For example, it appears that on EOF less than n bytes are read. The conditions under which it will not succeed in reading n bytes into a !ByteString (be it less than n, or it raising some sort of error) should be documented.