 }
 /// Shifts `lhs`' bits right by `rhs` bits and returns the result.
 public func >>(lhs: UInt128, rhs: UInt128) -> UInt128 {
-    if rhs.value.upperBits > 0 || rhs.value.lowerBits >= 128 {
+    if rhs.value.upperBits > 0 || rhs.value.lowerBits > 128 {
         return UInt128(0)
     }
     switch rhs {

// MARK: IntegerArithmeticType Conformance
extension UInt128: IntegerArithmeticType {
    public func toIntMax() -> IntMax {
        return IntMax(value.lowerBits)
    }
    public static func addWithOverflow(lhs: UInt128, _ rhs: UInt128) -> (UInt128, overflow: Bool) {

    public func distanceTo(end: UInt128) -> UInt128.Distance {
        if end >= self {
            return UInt128.Distance(end - self)
        }
        return Int(end) &- Int(self)
    }
}
// MARK: - IntegerLiteralConvertible
