code: func (n *node) split(i int) (Item, *node) {
  	item := n.items[i]
  	next := n.cow.newNode()
  	next.items = append(next.items, n.items[i+1:]...)
  	n.items.truncate(i)
  	if len(n.children) > 0 {
  		next.children = append(next.children, n.children[i+1:]...)
  		n.children.truncate(i + 1)
  	}
  	return item, next
  }
docs: // split splits the given node at the given index.  The current node shrinks,
  // and this function returns the item that existed at that index and a new node
  // containing all items/children after it.