def __repr__(self):
        return "<Requirement(package={package}, version='{version}')>".format(
            package=self.package, version=self.version)
def insert(root, key):
    left, right = split(root, key)
    return merge(merge(left, Treap(key)), right)