semifunctionally
not defined yet