 /// 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


/// Do not use this operator directly; call advance(start, n, end) instead.
@transparent
public func ~> <T : _BidirectionalIndexType>(
  start:T, rest: (_Advance, (T.Distance, T))
) -> T {
  let n = rest.1.0

///
/// 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`.
  ///
