docs: function set(tree, i, item) {
  	var len = tree.size;
  	if (i < 0 || len < i) {
  		throw new Error("Index " + i + " out of range!");
  	}
  	if (i === len) return push(item, tree);
  	var offset = (0, _util.tailOffset)(tree);
  	if (i >= offset) {
  		var newTail = (0, _util.createLeafFrom)(tree.tail);
  		newTail[i - offset] = item;
  		return new Tree(tree.size, tree.root, newTail);
  	}
  	var newRoot = (0, _util.setRoot)(i, item, tree.root);
  	return new Tree(tree.size, newRoot, tree.tail);
  }