def clear(self):
        super(GroupedRequirements, self).clear()
        self.create_default_groups()
def remove(root, key):
    left, right = split(root, key)
    return merge(left, split(right, key + 1)[1])