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

/// Replace `i` with its `predecessor()` and return the original
/// value of `i`.
@transparent
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
