This is a template to demonstrate recursive macros! Macros can have arguments that contains macros. For example: This is an apple If the macro argument can be resolved at parse time it is done so. But if not the resolution of the whole macro will be left to the end. Now to get to the real recursive macros. In the Example3 we saw the INCLUDE macro that did that. Here we'll define two macros (GIRLS and BOYS) and GIRLS is the recursive macro that returns an instance of BOYS: Girls like icecream, but boys like icecream too. Ahem! Some macros are not recursive. One of those is the KEY macro, lets try to replace into KEY a macro: Key contents - So recursive macros are macros that post-parse their output and look for additional macro tags. Recursive macros include: INCLUDE ALIAS Non-recursive: KEY and family If a recursive macro contains SUB-s they are parsed only if the macro is expanded on parse time. If macro output contains subs at outputing time the system will post a complaint to TemplateContext and the contents of SUBS will be discarded.