     /// The smallest value a UInt128 can hold.
     public static var min: UInt128 {
         return UInt128(upperBits: 0, lowerBits: 0)
+    }
+    /// Returns size of data type in bits.
+    public static var _sizeInBits: Int32 {
+        return 128
+    }
+    /// Returns size of data type in bytes.
+    public static var _sizeInBytes: Int32 {
+        return 128 / 8
     }
     // MARK: Instance Properties
     /// Internal value is presented as a tuple of 2 64-bit

    /// The unsigned integer representation of string exceeds
    /// 128 bits.
    case StringInputOverflow
    /// A condition that shouldn't ever happen. Hax0r!
    case Inconceivable
}
// MARK: Data Type
/// A 128-bit unsigned integer value type.

        self.init()
        self.value.lowerBits = value
    }
    public init(_ value: UInt) {
        self.init(value.toUIntMax())
    }
    public init(_ value: UInt8) {
        self.init(value.toUIntMax())
    }
    public init(_ value: UInt16) {
        self.init(value.toUIntMax())
    }
    public init(_ value: UInt32) {
        self.init(value.toUIntMax())
    }
    public func toUIntMax() -> UIntMax {
        return UIntMax(value.lowerBits)
