Understanding improper lists usage in elixir-plug

Sorry for resurrecting an old thread, but while looking into this I also stumbled upon this issue which is relevant I think:
https://github.com/erlang/otp/issues/5937

The OTP team seems to be considering disabling these warnings, since there are legit use cases for improper lists:

  • IO data as already explained above
  • as a low-level performance optimization for libraries: [a | b] takes less memory than {a, b}