code: func (n *node) reset(c *copyOnWriteContext) bool {
  	for _, child := range n.children {
  		if !child.reset(c) {
  			return false
  		}
  	}
  	return c.freeNode(n) != ftFreelistFull
  }
docs: // reset returns a subtree to the freelist.  It breaks out immediately if the
  // freelist is full, since the only benefit of iterating is to fill that
  // freelist up.  Returns true if parent reset call should continue.