     
     @_transparent
     private mutating func _compareSet(old: AtomicBase<Instance>, new: AtomicBase<Instance>) -> Bool {
+        defer { _fixLifetime(base) }
+        defer { _fixLifetime(old) }
+        defer { _fixLifetime(new) }
         let _old = Unmanaged.passUnretained(old)
         let _new = Unmanaged.passRetained(new)
         let result = withUnsafeMutablePointer(to: &base) { $0.withMemoryRebound(to: Optional<UnsafeMutableRawPointer>.self, capacity: 1) { _AtomicCompareAndSwapPtrBarrier(_old.toOpaque(), _new.toOpaque(), $0) } }

extension Atomic {
    
    public mutating func isLockFree() -> Bool {
        return withUnsafeMutablePointer(to: &base) { $0.withMemoryRebound(to: Optional<UnsafeRawPointer>.self, capacity: 1) { _AtomicPtrIsLockFree($0) } }
    }
    
    @_transparent
    private mutating func _fetch() -> AtomicBase<Instance> {
        let result = withUnsafeMutablePointer(to: &base) { $0.withMemoryRebound(to: Optional<UnsafeRawPointer>.self, capacity: 1) { _AtomicLoadPtrBarrier($0) } }
        let _old = Unmanaged<AtomicBase<Instance>>.fromOpaque(UnsafeRawPointer(result!))
        return _old.takeUnretainedValue()

    
    @_transparent
    private mutating func _compareSetWeak(old: AtomicBase<Instance>, new: AtomicBase<Instance>) -> Bool {
        defer { _fixLifetime(base) }
        defer { _fixLifetime(old) }
        defer { _fixLifetime(new) }
        let _old = Unmanaged.passUnretained(old)
        let _new = Unmanaged.passRetained(new)
        let result = withUnsafeMutablePointer(to: &base) { $0.withMemoryRebound(to: Optional<UnsafeMutableRawPointer>.self, capacity: 1) { _AtomicCompareAndSwapWeakPtrBarrier(_old.toOpaque(), _new.toOpaque(), $0) } }
