 }
 
 extension UInt8: BigDigit {
+    @warn_unused_result
     internal static func digitsFromUIntMax(i: UIntMax) -> [UInt8] {
         var digits = Array<UInt8>()
         var remaining = i

}

extension UInt16: BigDigit {
    internal static func digitsFromUIntMax(i: UIntMax) -> [UInt16] {
        var digits = Array<UInt16>()
        var remaining = i


internal protocol BigDigit: UnsignedIntegerType, BitwiseOperationsType, ShiftOperationsType {
    init(_ v: Int)

    @warn_unused_result
    static func digitsFromUIntMax(i: UIntMax) -> [Self]

    @warn_unused_result
    static func fullMultiply(x: Self, _ y: Self) -> (high: Self, low: Self)

    @warn_unused_result
    static func fullDivide(xh: Self, _ xl: Self, _ y: Self) -> (div: Self, mod: Self)

    static var max: Self { get }
