     }
     
     @_transparent
-    public var magnitude: RepresentingValue.Magnitude {
-        return representingValue.magnitude
+    public var magnitude: Self {
+        return Self(bitPattern: BitPattern(exactly: bitPattern.magnitude) ?? .max)
     }
     
     @_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 static func -(lhs: Self, rhs: Self) -> Self {
        let (value, overflow) = lhs.bitPattern.subtractingReportingOverflow(rhs.bitPattern)
        return overflow ? (rhs < 0 ? .max : .min) : Self(bitPattern: value)
    }
    
    @_transparent
