     ///     - recordsWillChange: Invoked before records are updated.
     ///     - recordsDidChange: Invoked after records have been updated.
     public func trackChanges(
-        recordsWillChange: (@escaping (FetchedRecordsController<Record>) -> ())? = nil,
-        recordsDidChange: (@escaping (FetchedRecordsController<Record>) -> ())? = nil)
+        recordsWillChange: ((FetchedRecordsController<Record>) -> ())? = nil,
+        recordsDidChange: ((FetchedRecordsController<Record>) -> ())? = nil)
     {
         let recordsWillChangeWithVoidAlongside: ((FetchedRecordsController<Record>, Void) -> ())?
         if let recordsWillChange = recordsWillChange {

    ///     - recordsDidChange: Invoked after records have been updated.
    public func trackChanges<T>(
        fetchAlongside: @escaping (Database) -> T,
        recordsWillChange: (@escaping (FetchedRecordsController<Record>, _ fetchedAlongside: T) -> ())? = nil,
        tableViewEvent: (@escaping (FetchedRecordsController<Record>, Record, TableViewEvent) -> ())? = nil,
        recordsDidChange: (@escaping (FetchedRecordsController<Record>, _ fetchedAlongside: T) -> ())? = nil)
    {
        // If some changes are currently processed, make sure they are
        // discarded because they would trigger previously set callbacks.

    init(
        controller: FetchedRecordsController<Record>,
        fetchAlongside: @escaping (Database) -> T,
        recordsWillChange: ((FetchedRecordsController<Record>, _ fetchedAlongside: T) -> ())?,
        recordsDidChange: ((FetchedRecordsController<Record>, _ fetchedAlongside: T) -> ())?)
    {
        self.controller = controller
        self.fetchAlongside = fetchAlongside
