code: func assembleImportPath(file string) string {
  	a, _ := filepath.Abs(filepath.Dir(file))
  	absPath, fullPkg := filepath.ToSlash(a), ""
  	greedy := 0
  	for _, p := range filepath.SplitList(os.Getenv("GOPATH")) {
  		a, _ = filepath.Abs(p)
  		p = filepath.ToSlash(a)
  		symlink, _ := filepath.EvalSymlinks(p)
  		if (strings.HasPrefix(absPath, p) || strings.HasPrefix(absPath, symlink)) && len(p) > greedy {
  			prefixPath := filepath.ToSlash(filepath.Join(p, "src"))
  			fullPkg, _ = filepath.Rel(prefixPath, absPath)
  			greedy = len(p)
  		}
  	}
  	return filepath.ToSlash(fullPkg)
  }
docs: // ToSlash is being used to coerce the different
  // os PathSeparators into the forward slash
  // as the forward slash is required by Go's import statement