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

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

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

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

  public typealias Distance = Base.Distance
  
