                 return nil
             }
 
-            count -= 1
+            defer {
+                count -= 1
+                i += 1
+            }
+
             if i >= self._storage.count {
                 i -= self._storage.count
             }
 
-            let element = self._storage[i]
-            i += 1
-            return element
+            return self._storage[i]
         }
     }
 }

        precondition(count > 0)
        
        let index = dequeueIndex
        let value = _storage[index]!
        
        _storage[index] = nil
        
        _count = _count - 1
        
        return value
    }

    /**

        
        _storage[_pushNextIndex] = element
        _pushNextIndex += 1
        _count += 1
        
        if _pushNextIndex >= _storage.count {
            _pushNextIndex -= _storage.count
