why is double negation useful in shiftOut for example?