handler macros: recursive structures