I'm trying to link your comments to what specifically in the code you object to.
After thinking about it overnight, here are my guesses. Are they correct? It is usually a bad idea to interfer with the compiler in ways unforseen by the compiler devs ;-) Run Does this refer to the fact that the macro explicitly compiles the `destroyFields(...)` statement? By "compiles", I mean parsing the statement in the context of the surrounding code, and generating an AST for it - again, in the context of the surreounding code. if you want your own memory management you should use ptr. Run Does this refer to the use of ``=destroy`(x.field.addr[])` to trigger destruction of a field, instead of ``=destroy`(x.field)`? I have an idea how to address the first item. I'll update the code and post here when/if I get it working.