 
 public struct DropRangeCollection<C : CollectionType where C.SubSequence : CollectionType> : CollectionType {
     
-    public typealias Generator = DropRangeGenerator<C>
+    public typealias Generator = DropRangeGenerator<C.SubSequence.Generator>
     
     private let base: ConcatCollection<C.SubSequence, C.SubSequence>
     

    }
}

public struct DropRangeGenerator<C : CollectionType> : GeneratorType {
    
    private var base: ConcatGenerator<C.SubSequence.Generator, C.SubSequence.Generator>
    
    public mutating func next() -> C.SubSequence.Generator.Element? {
        return base.next()
    }
}


public struct DropRangeBidirectionalCollection<C : CollectionType where C.SubSequence : CollectionType, C.SubSequence.Index : BidirectionalIndexType> : CollectionType {
    
    public typealias Generator = DropRangeGenerator<C.SubSequence.Generator>
    
    private let base: ConcatBidirectionalCollection<C.SubSequence, C.SubSequence>
    
