generating functions from macro