         }
     }
 
+    private class AnyTableViewBondBinder<DataSource: DataSourceProtocol>: TableViewBinder<DataSource> {
+
+        func titleForHeader(in section: Int, dataSource: DataSource) -> String? {
+            return nil
+        }
+
+        func titleForFooter(in section: Int, dataSource: DataSource) -> String? {
+            return nil
+        }
+    }
+
     @available(*, deprecated)
-    private class TableViewBondBinder<Bond: TableViewBond>: TableViewBinder<Bond.DataSource> {
+    private class TableViewBondBinder<Bond: TableViewBond>: AnyTableViewBondBinder<Bond.DataSource> {
 
         let bond: Bond
 

                tableView.endUpdates()
            }
        }

        /// - Returns: Header title for the given section. Default implementation returns `nil`.
        open func titleForHeader(in section: Int, dataSource: DataSource) -> String? {
            return nil
        }

        /// - Returns: Footer title for the given section. Default implementation returns `nil`.
        open func titleForFooter(in section: Int, dataSource: DataSource) -> String? {
            return nil
        }
    }

    /// A `TableViewBinder` subclass that applies events without animations or batching.

    }

    /// A type used by the table view bindings that provides binding options and actions.
    /// Subclass `TableViewBinder` to configure peculiarities of the bindings like animations.
    open class TableViewBinder<DataSource: DataSourceProtocol> {

        open var rowAnimation: UITableViewRowAnimation = .automatic
