macros can be statically evaluated