Wouldn't wrapping the macro output in parenthesis `()` largely solve the pitfall you describe in the readme? For example, ```js const helloWorld = { hello: 'world' }.hello; ``` isn't valid JS but ```js const helloWorld = ({ hello: 'world' }).hello; ``` is and works as expected.