 
   // MARK: - Initializers
 
-  public init(adapter: A, displayingSection: Int = 0, isEqual: @escaping EqualityChecker<T>) {
+  public init(itemType: T.Type? = nil, adapter: A, displayingSection: Int = 0, isEqual: @escaping EqualityChecker<T>) {
     self.updater = SectionUpdater(adapter: adapter)
     self.isEqual = isEqual
     self.displayingSection = displayingSection

    return self
  }

  @inline(__always)
  fileprivate func toIndex(from indexPath: IndexPath) -> Int {
    assert(indexPath.section == displayingSection, "IndexPath.section (\(indexPath.section)) must be equal to displayingSection (\(displayingSection)).")


extension SectionDataSource where T : Equatable {

  public convenience init(itemType: T.Type? = nil, adapter: A, displayingSection: Int = 0) {
    self.init(adapter: adapter, displayingSection: displayingSection, isEqual: { a, b in a == b })
  }
}
