Make semantics closer to `base` implementation

This causes integer "underflows" to throw `Underflow ::
ArithException` rather than stringly `error` messages.