 extension UnsafeMutableRawPointer : SDAtomicProtocol {
     
     /// Atomic fetch the current value with barrier.
-    public mutating func fetchSelf() -> (self: UnsafeMutableRawPointer, value: UnsafeMutableRawPointer) {
+    public mutating func fetchSelf() -> (current: UnsafeMutableRawPointer, value: UnsafeMutableRawPointer) {
         @_transparent
         func load(_ theVal: UnsafeMutablePointer<UnsafeMutableRawPointer>) -> UnsafeMutableRawPointer {
             return theVal.withMemoryRebound(to: Optional<UnsafeRawPointer>.self, capacity: 1) { _AtomicLoadPtrBarrier($0) }

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

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