Currently, the CGP proc macros are written in a naive way that simply panics when it encounters syntax errors. To improve usability, we need to properly rewrite the proc macros so that they provide more helpful diagnostics when encountering syntax errors.