code: func (a *App) VisibleCategories() []*CommandCategory {
  	ret := []*CommandCategory{}
  	for _, category := range a.categories {
  		if visible := func() *CommandCategory {
  			for _, command := range category.Commands {
  				if !command.Hidden {
  					return category
  				}
  			}
  			return nil
  		}(); visible != nil {
  			ret = append(ret, visible)
  		}
  	}
  	return ret
  }
docs: // VisibleCategories returns a slice of categories and commands that are
  // Hidden=false