 /// Replace `i` with its `predecessor()` and return the original
 /// value of `i`.
 @transparent
-public postfix func -- <T : _BidirectionalIndexType> (inout i: T) -> T {
+public postfix func -- <T : BidirectionalIndexType> (inout i: T) -> T {
   let ret = i
   i._predecessorInPlace()
   return ret

///
/// Its requirements are inherited by `RandomAccessIndexType` and thus must
/// be satisfied by types conforming to that protocol.
public protocol _RandomAccessIndexType : _BidirectionalIndexType, Strideable {
  /// Return the minimum number of applications of `successor` or
  /// `predecessor` required to reach `other` from `self`.
  ///

//===----------------------------------------------------------------------===//
//===--- BidirectionalIndexType -------------------------------------------===//


/// An *index* that can step backwards via application of its
/// `predecessor()` method.
public protocol BidirectionalIndexType : ForwardIndexType {
  /// Return the previous consecutive value in a discrete sequence.
  ///
  /// If `self` has a well-defined successor,
