its not the same in all circumstances:
alias test {
set %i 0
echo -a $iif(!%i,yes,no)
echo -a $iif(%i == $null,yes,no)
}
!%i reads '0' as $null
%i == $null doesn't