loop over functions and macros separately rather than using zip