Right. This is like the POSIX features writev() and 'struct iovec'. Essentially all of Erlang's binary output primitives are happy to take an iolist/iovec instead of a plain string and this means fewer concatenations and/or system calls. Good feature.
Maybe here you can find a bit better explanation: http://erlang.org/pipermail/erlang-questions/2012-May/066590...