code: func (m *tree) deleteLeftmost() (*tree, *tree) {
  	if m.isLeaf() {
  		return m, nilMap
  	}
  
  	for i, t := range m.children {
  		if t != nilMap {
  			deleted, child := t.deleteLeftmost()
  			newMap := m.clone()
  			newMap.children[i] = child
  			recalculateCount(newMap)
  			return deleted, newMap
  		}
  	}
  	panic("Tree isn't a leaf but also had no children. How does that happen?")
  }
docs: // delete the leftmost node in a tree returning the node that
  // was deleted and the tree left over after its deletion