use signed by default, unless explicitly unsigned