code: func (t *Tree) Add(path string, node Node) {
  	path = pathpkg.Clean("/" + path)[1:]
  	elems := strings.Split(path, "/")
  	dir := Node(&t.tree)
  	for i, elem := range elems {
  		dt, ok := dir.(*tree)
  		if !ok {
  			panic("fuse: Tree.Add for " + strings.Join(elems[:i], "/") + " and " + path)
  		}
  		n := dt.lookup(elem)
  		if n != nil {
  			if i+1 == len(elems) {
  				panic("fuse: Tree.Add for " + path + " conflicts with " + elem)
  			}
  			dir = n
  		} else {
  			if i+1 == len(elems) {
  				dt.add(elem, node)
  			} else {
  				dir = &tree{}
  				dt.add(elem, dir)
  			}
  		}
  	}
  }
docs: // Add adds the path to the tree, resolving to the given node.
  // If path or a prefix of path has already been added to the tree,
  // Add panics.