Don't include the newline when parsing preprocessor directives
Implement the printer
Gen/get-sym operations return tokens, not strings

Fix lambda example
Expand toplevel templates, remove useless stuff
Improve pattern matching, don't print a space after a ( or [