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

        return base[index.base]
    }
    
    public func generate() -> LazyReplaceRangeGenerator<C, S> {
        return LazyReplaceRangeGenerator(base: base.generate())
    }
    

        return base[index.base]
    }
    
    public func generate() -> DropRangeGenerator<C.SubSequence.Generator> {
        return DropRangeGenerator(base: base.generate())
    }
    
