             switch character {
             case digit: current = UInt128(character - digit.startIndex)
             case lower: current = UInt128(character - lower.startIndex) + 10
-            default: throw UInt128Errors.Inconceivable
+            default: throw UInt128Errors.InvalidStringCharacter
             }
             // Make room for current positional value.
             let (multiplyResult, multiplyOverflow) = UInt128.multiplyWithOverflow(

// MARK: IntegerArithmeticType Conformance
extension UInt128: IntegerArithmeticType {
    public func toIntMax() -> IntMax {
        precondition(self.value.lowerBits <= UInt64(IntMax.max),
            "Converting `self` to 'IntMax' causes an integer overflow")
        return IntMax(value.lowerBits)
    }
    public static func addWithOverflow(lhs: UInt128, _ rhs: UInt128) -> (UInt128, overflow: Bool) {

        }
        return (
            UInt128(upperBits: upperBits, lowerBits: lowerBits),
            upperOverflow || resultOverflow
        )
    }
    public static func subtractWithOverflow(lhs: UInt128, _ rhs: UInt128) -> (UInt128, overflow: Bool) {
