Macros

This creates Visit. This is extensible visitor generator, and it