If any operand of the '?' operator is of an unsigned type, the result is unsigned by default. Thanks to Julian Stecklina for finding this out. Fixes #189.