make the byte compiler happy by marking functions used in macros with eval-and-compile