async def corofunc(**local_args):
            nonlocal called
            assert local_args == args
            called += 1
def remove(root, key):
    left, right = split(root, key)
    return merge(left, split(right, key + 1)[1])