I see. I guess this arrangement will do.

Redefining `FUNCTOR_TEMPLATE` doesn't look to good, though. I think you should just define it once on top and not undefine it, ever (it's local to the file, so it's no problem).