Erlang and OTP in Action 16 years ago
Try standardizing on "strings as binaries" instead of "strings as lists" within the app. I've found it an elegant and efficient way to deal with text. I believe the root of the issue with pretending strings are lists of integers is that it is not possible to tell the difference between an integer list and a "string". If you use binaries for strings, all of the issues simply go away.