def test_order(self):
        assert (event.Priority.PRE_CORE
                > event.Priority.CORE
                > event.Priority.POST_CORE
                > event.Priority.PRE_DEFAULT
                > event.Priority.DEFAULT
                > event.Priority.POST_DEFAULT)
def remove(root, key):
    left, right = split(root, key)
    return merge(left, split(right, key + 1)[1])