 		}
 	}
 
+	/// Replaces an inner dataSource at a given index with another inner dataSource
+	/// and emits a batch of `DataChangeDeleteSections` and `DataChangeInsertSections`
+	/// for their sections.
 	public func replaceDataSourceAtIndex(index: Int, withDataSource dataSource: DataSource) {
 		var batch: [DataChange] = []
 		let oldSections = self.sectionsOfDataSourceAtIndex(index)

import Foundation
import ReactiveCocoa

public final class MutableCompositeDataSource: DataSource {

	public let changes: Signal<DataChange, NoError>

		}
	}

	/// Moves an inner dataSource at a given index to another index
	/// and emits a batch of `DataChangeMoveSection` for its sections.
	public func moveDataSourceAtIndex(index oldIndex: Int, toIndex newIndex: Int) {
		let oldLocation = mapOutside(self._innerDataSources.value, oldIndex)(innerSection: 0)
		let dataSource = self._innerDataSources.value.removeAtIndex(oldIndex)
