 /// A wrapper for a `RandomAccessIndex` that reverses its
 /// direction of traversal.
 public struct ReverseRandomAccessIndex<Base: RandomAccessIndex>
-  : RandomAccessIndex, ReverseIndexType {
+  : RandomAccessIndex, ReverseIndexProtocol {
 
   public typealias Distance = Base.Distance
   

}

public protocol _ReverseCollection : Collection {
  typealias Index : ReverseIndexType
  typealias Base : Collection
  var _base: Base {get}
}

//
//===----------------------------------------------------------------------===//

public protocol ReverseIndexProtocol : BidirectionalIndex {
  typealias Base : BidirectionalIndex
  
  /// A type that can represent the number of steps between pairs of
