     associatedtype Atom
     
     /// Atomic fetch the current value.
-    mutating func fetchSelf() -> (self: Self, value: Atom)
+    mutating func fetchSelf() -> (current: Self, value: Atom)
     
     /// Compare and set the value.
     mutating func compareSet(old: Self, new: Atom) -> Bool

extension UInt8 : SDAtomicProtocol {
    
    /// Atomic fetch the current value with barrier.
    public mutating func fetchSelf() -> (self: UInt8, value: UInt8) {
        let val = _AtomicLoadU8Barrier(&self)
        return (val, val)
    }

extension Atomic : SDAtomicProtocol {
    
    /// Atomic fetch the current value.
    public mutating func fetchSelf() -> (current: Atomic, value: Instance) {
        let _base = _fetch()
        return (Atomic(base: _base), _base.value)
    }
