Bring back laziness, use a different technique to ensure we diagnose bad macro scopes.
Support for defining function-like macros.