     /// The `@autoclosure` form of `subscript(faulting:)` should be used when possible as it can be faster.
     @inlinable subscript(faultingValue defaultValue: Wrapped) -> Wrapped {
         get { asOptional ?? defaultValue }
-//        set { self = Self(newValue) }
-        _modify {
-            var x = asOptional ?? defaultValue
-            yield &x
-            self = Self(x)
-        }
+        set { self = Self(newValue) }
+
+        // Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
+//        _modify {
+//            var x = asOptional ?? defaultValue
+//            yield &x
+//            self = Self(x)
+//        }
     }
 
 }

    /// Returns the wrapped value or the defaulting value if the wrapped value if nil
    @inlinable subscript(faulting defaultValue: @autoclosure () -> Wrapped) -> Wrapped {
        get { asOptional ?? defaultValue() }
//        set { self = Self(newValue) }
        _modify {
            var x = asOptional ?? defaultValue()
            yield &x
            self = Self(x)
        }
    }

    /// Returns the wrapped value or the defaulting value if the wrapped value if nil. This is a variant of the @autoclosure subscript,

    /// See also: `defaulted`
    @inlinable var defaulted: Wrapped {
        get { self ?? Wrapped.defaultValue }
        set { self[defaulting: .defaultValue] = newValue }
        // Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
//        _modify {
//            var x = self ?? Wrapped.defaultValue
//            yield &x
//            self = x == Wrapped.defaultValue ? .none : x
//        }
    }
}

