code: func (t *Tree) String() string {
  	var result bytes.Buffer
  	path := strings.Join(t.path, ", ")
  	if path != "" {
  		path = fmt.Sprintf(" (path: %s)", path)
  	}
  	result.WriteString(t.Name() + path + "\n")
  
  	cs := t.Children()
  	if cs == nil {
  		result.WriteString("  not loaded")
  	} else {
  		// Go through each child and get its string value, then indent it
  		// by two.
  		for _, c := range cs {
  			r := strings.NewReader(c.String())
  			scanner := bufio.NewScanner(r)
  			for scanner.Scan() {
  				result.WriteString("  ")
  				result.WriteString(scanner.Text())
  				result.WriteString("\n")
  			}
  		}
  	}
  
  	return result.String()
  }
docs: // String gives a nice output to describe the tree.