This `@eval` loop should be removed. There is no reason to copy this entire function body when it is basically identical for each case. Instead, there should be a single code-generating function that takes `fname` as an argument, and each macro can be a trivial wrapper around this.