make curryfn more versatile, add defcurryfn, use it in defining lift-m-*