add eval-when wrap around macro