I would expect:
//var %a = $true | if (!(%a)) { echo -a true } | else { echo -a false }
//var %a = $false | if (!(%a)) { echo -a true } | else { echo -a false }
to give the same results as:
//var %a = $true | if (!%a) { echo -a true } | else { echo -a false }
//var %a = $false | if (!%a) { echo -a true } | else { echo -a false }
However the former gives:
true
true
while the latter gives
false
true
What I was expecting to be able to do was to use !(%a && %b). I could just use (!%a || !%b), but I think the former is clearer, and should be possible.