     associatedtype SectionFooter: Equatable
     associatedtype Footer: Equatable
     
-    
     /**
      The view model underlying the table.
     */

}

extension TableControlling {
    var numberOfSectionsInTable: Int {
        return model.numberOfSections
    }
    
    func numberOfItems(inTableSection section: Int) -> Int {
        return model.numberOfItems(inSection: section)
    }

    Cell == Model.Cell,
    View: CellDequeueing
{
    /**
     The cell to be displayed at the given index path.

     This is designed to be called from `tableView(_:cellForRowAt:)`
    */
    func tableCell(forRowAt indexPath: IndexPath) -> UITableViewCell? {
        guard let cellModel = model.item(at: indexPath) else {
            return nil
