code: func (u *unfinishedNodes) get() *builderNodeUnfinished {
  	if len(u.stack) < len(u.cache) {
  		return &u.cache[len(u.stack)]
  	}
  	// full now allocate a new one
  	return &builderNodeUnfinished{}
  }
docs: // get new builderNodeUnfinished, reusing cache if possible