code: func (n *node) maybeSplitChild(i, maxItems int) bool {
  	if len(n.children[i].items) < maxItems {
  		return false
  	}
  	first := n.mutableChild(i)
  	item, second := first.split(maxItems / 2)
  	n.items.insertAt(i, item)
  	n.children.insertAt(i+1, second)
  	return true
  }
docs: // maybeSplitChild checks if a child should be split, and if so splits it.
  // Returns whether or not a split occurred.