vega, Alright, it seems I overstated about the burden. As long as async macro it used, users are fine, because addr result points to heap (to iterator's closure environment). But great caution should be taken if async is not being used.
Even if it's not networking lib, it should clearly define endianness and size of the data that's being written/read. Otherwise, it is limited to being usable only within the same machine. Take a look at other popular mainstream standard libraries - like Java, Node.js, C#. Java guarantees big endian order, C# guarantees little endian, Node.js provides both LE and BE functions, and all of them clearly define size of data that's being read/written. I think either C# or Node.js approach should be taken, because most of the chips today are little endian (perhaps there are BE microcontrollers? and previous generation consoles are BE). But there is still great diversion in 32-bit vs 64-bit, so readInt and writeInt would be quite dangerous to use.
