refer defcurried macro