Replace error messages with error objects that store metadata.
$ luarocks install fat_error
Errors can be chained e.g. for propagating out of a coroutine,
so you can print the error chain in a consistent manner.
Furthermore one can print the error to multiple destinations: A colored version
for the terminal, a colorless version for the log file, or even aggregate it in
a database for later processing/analysis.