   C._Element == Slice_.Iterator.Element,
   C.Index == Slice_.Index
 >(self_: inout C, bounds: Range<C.Index>, slice: Slice_) {
-  fatalError("FIXME: swift-3-indexing-model")
-  /*
-  C._failEarlyRangeCheck(bounds, self_.startIndex..<self_.endIndex)
+  
+  self_._failEarlyRangeCheck(bounds, bounds: self_.startIndex..<self_.endIndex)
   
   // FIXME(performance): can we use
   // _withUnsafeMutableBufferPointerIfSupported?  Would that create inout

  _precondition(
    newElementIndex == newElementsEndIndex,
    "Cannot replace a slice of a MutableCollection with a slice of a smaller size")
  */
}

@available(*, unavailable, renamed: "MutableCollection")

    newElementIndex != newElementsEndIndex {

    self_[selfElementIndex] = slice[newElementIndex]
    self_.successor(updating: &selfElementIndex)
    slice.successor(updating: &newElementIndex)
  }

  _precondition(
