["Guten tag " | <<"Hello">>].
In the shell this will be printed as ["Guten tag "|<<"Hello">>]
instead of ["Guten tag ",<<"Hello">>]
. The pipe operator will create an improper list if the last element on the right is not a list. While an improper list whose "tail" is a binary is still a valid iolist, improper lists can cause issues because many recursive functions expect an empty list to be the last element, and not, as in this case a binary.