 }
 
 extension CollectionType
-  where Self : _ReverseCollectionType, Self.Base.Index : BidirectionalIndexType {
-  public var startIndex : _prext_ReverseIndex<Self.Base.Index> {
-    return _prext_ReverseIndex(_base.endIndex)
-  }
-}
-
-extension CollectionType
   where Self : _ReverseCollectionType, Self.Index.Base == Self.Base.Index
 {
+  public var startIndex : Index { return Self.Index(_base.endIndex) }
   public var endIndex : Index { return Self.Index(_base.startIndex) }
   public subscript(position: Index) -> Self.Base.Generator.Element {
     return _base[position._base.predecessor()]

  public let _base: Base_
}

print(_prext_ReverseCollection(0..<12).startIndex)
print(_prext_ReverseCollection(0..<12).array)
print(_prext_ReverseCollection("foobar".characters).array)
print(_prext_ReverseCollection("foobar".characters).startIndex)

/*****
/// The lazy `CollectionType` returned by `reverse(c)` where `c` is a

}
*/

runAllTests()
