 /// of a collection to `MutableCollectionAlgorithms` to get these customization
 /// points to be used from other algorithms defined on
 /// `MutableCollectionAlgorithms`.
-public protocol MutableCollectionAlgorithms : MutableCollection
-where SubSequence : MutableCollectionAlgorithms
+public protocol MutableCollectionAlgorithms: MutableCollection
+where SubSequence: MutableCollectionAlgorithms
 {
   /// Rotates the elements of the collection so that the element
   /// at `middle` ends up first.

  }
}

extension Concatenation : RandomAccessCollection
  where Base1: RandomAccessCollection, Base2: RandomAccessCollection
{
  public func index(_ i: Index, offsetBy n: Int) -> Index {
    if n == 0 { return i }
    return n > 0 ? _offsetForward(i, by: n) : _offsetBackward(i, by: -n)


// Conformances of common collection types to MutableCollectionAlgorithms.
// If rotate was a requirement of MutableCollection, these would not be needed.
extension Array: MutableCollectionAlgorithms {}
extension ArraySlice: MutableCollectionAlgorithms {}
extension Slice: MutableCollectionAlgorithms
where Base: MutableCollection {}

extension MutableCollection {
