 }
 
 @_fixed_layout
-public struct LazyGatherBidirectionalCollection<C : Collection, I : BidirectionalCollection> : LazyCollectionProtocol, BidirectionalCollection where C.Index == I.Element {
-    
-    public typealias Iterator = LazyGatherIterator<C, I.Iterator>
+public struct GatheringBidirectionalCollection<C : Collection, I : BidirectionalCollection> : BidirectionalCollection where C.Index == I.Element {
+    
+    public typealias Iterator = GatheringIterator<C, I.Iterator>
     
     public let base: C
     

    
    @_inlineable
    public func makeIterator() -> Iterator {
        return LazyGatherIterator(base: base, indices: indices.makeIterator())
    }
    
    @_inlineable

}

@_fixed_layout
public struct GatheringRandomAccessCollection<C : Collection, I : RandomAccessCollection> : RandomAccessCollection where C.Index == I.Element {
    
    public typealias Iterator = GatheringIterator<C, I.Iterator>
    
    public let base: C
    
