 public protocol BidirectionalIndexType 
   : ForwardIndexType, _BidirectionalIndexType {}
 
-public
+@transparent public
 prefix func -- <T: _BidirectionalIndexType> (inout x: T) -> T {
   x = x.predecessor()
   return x
 }
 
 
-public
+@transparent public
 postfix func -- <T: _BidirectionalIndexType> (inout x: T) -> T {
   var ret = x
   x = x.predecessor()

  let d = start.distanceTo(end)
  return (n > 0 ? d < n : d > n) ? end : start.advancedBy(n)
}

  typealias _DisabledRangeIndex = _DisabledRangeIndex_
}

@transparent prefix public
func ++ <T : _Incrementable> (inout x: T) -> T {
  x = x.successor()
  return x
}

@transparent postfix public
func ++ <T : _Incrementable> (inout x: T) -> T {
  var ret = x
  x = x.successor()
