         if leftmost == handle { leftmost = child ?? node.parent }
         if rightmost == handle { rightmost = child ?? node.parent }
 
-        updateSummarysAtAndAbove(node.parent)
+        updateSummariesAtAndAbove(node.parent)
 
         if node.color == .Black {
             rebalanceAfterRemoval(slot)

    }

    /// Updates the summary cached at `handle` and its ancestors, assuming that all other nodes have up-to-date data.
    /// - Complexity: O(log(count)) for nonempty summarys, O(1) when the summary is empty.
    private mutating func updateSummarysAtAndAbove(handle: Handle?) {
        guard sizeof(Summary.self) > 0 else { return }
        var handle: Handle? = handle
        while let h = handle {

        let old = node.head
        node.head = head
        self[handle] = node
        updateSummariesAtAndAbove(handle)
        return old
    }
}
