fn to macro