         if lastNode == sentinel || z.key >= lastNode.key { lastNode = z }
         assert(lastNode.successor() == nil)
 
-        return Index(node: z, treeID: uuid)
+        return Index(node: z)
     }
 
     /// - Complexity: O(log `count`)

 4. If a node is red, then both its children are black.
 5. For each node, all simple paths from the node to descendant leaves contain the same number of black nodes.
 */
public struct _RedBlackTree<Key : Comparable> {

    private typealias Node = _RedBlackTreeNode<Key>

        return key == nil
    }

    /// Check whether the subtree (including `self`) includes `other`.
    /// - Complexity: O(log count)
    func contains(other: _RedBlackTreeNode) -> Bool {
        assert(!other.isSentinel)
        var x = other
        while !x.isSentinel && x != self { x = x.parent }
        return x == self
    }

    /// - Complexity: O(log count)
    func subtreeMin() -> _RedBlackTreeNode {
        guard !self.isSentinel else { return self }
