code: func RunArgs(flags Flagger, main interface{}, args []string) error {
  	err := Flags(flags, main)
  	if err != nil {
  		return fmt.Errorf("calling Flags: %v", err)
  	}
  	err = flags.Parse(args)
  	if err != nil {
  		return fmt.Errorf("parsing flags: %v", err)
  	}
  
  	if main, ok := main.(Runner); ok {
  		return main.Run()
  	}
  	return fmt.Errorf("called 'Run' with something which doesn't implement the 'Run() error' method.")
  }
docs: // RunArgs is similar to Run, but the caller must specify their own flag set and
  // args to be parsed by that flag set.