     @_transparent
     public static func -(lhs: Self, rhs: Self) -> Self {
         let (value, overflow) = lhs.bitPattern.subtractingReportingOverflow(rhs.bitPattern)
-        return overflow ? .min : Self(bitPattern: value)
+        return overflow ? (rhs < 0 ? .max : .min) : Self(bitPattern: value)
     }
     
     @_transparent

    @_transparent
    public static func +(lhs: Self, rhs: Self) -> Self {
        let (value, overflow) = lhs.bitPattern.addingReportingOverflow(rhs.bitPattern)
        return overflow ? .max : Self(bitPattern: value)
    }
    
    @_transparent

    }
    
    @_transparent
    public var magnitude: Self {
        return Self(bitPattern: BitPattern(exactly: bitPattern.magnitude) ?? .max)
    }
    
    @_transparent
