I think that " ! ( ... )" is more readable than " ( ... ) == false " in general, but especially in these complex cases.

Add comment -- what does expr.alias mean here and why do we care. Can you write a test that succeeds or fails this test based on alias, so we can tell that it does the right thing in either case?