Good error reporting in macro systems is tricky. An interesting Rust RFC to provide better messages: https://github.com/sgrif/rfcs/blob/sg-add-error-macro/text/0000-add-error-macro.md