         }
     }
     
-    public subscript(indices: [Int]) -> Element {
+    subscript(indices: [Int]) -> Element {
         let storageIndices = getStorageIndices(indices)
         return storage[storageIndices]
     }
     
-    public subscript(indices: Int...) -> Element {
+    subscript(indices: Int...) -> Element {
         let storageIndices = getStorageIndices(indices)
         return storage[storageIndices]
     }


import Foundation

public struct TensorSlice<T>: TensorProtocol {
    
    // MARK: - Associated Types
    
    public typealias Element = T
    
    // MARK: - Underlying Storage
    

// MARK: - Slice Indexing
extension TensorSlice {
    
    subscript(indices: [TensorIndex]) -> Tensor<Element> {
        return Tensor(TensorSlice(baseTensor: self, viewIndices: indices))
    }
    
    subscript(indices: TensorIndex...) -> Tensor<Element> {
        return Tensor(TensorSlice(baseTensor: self, viewIndices: indices))
    }
    
