private BinaryOperatorType GetCorrespondingHasValueOperator(BinaryOperatorType op)
{
if (BinaryOperatorType.Equality == op || BinaryOperatorType.Inequality == op)
return op;
//when there is at least one non-value operand then any other comparison
//than equality/inequality is undefined/false (as in C#)
return BinaryOperatorType.BitwiseAnd;
}