Better handling of functors, macros, defines, and when- and where-clauses.