Fix printing of preprocessor directives, blocks
Fix a bug where macro calls in toplevel directives were not expanded
Add a macro showing variable type inference