code: func (s *creator) createGeneratePassword(ctx context.Context) (string, error) {
  	noXkcd, err := termio.AskForBool(ctx, fmtfn(4, "a", "Cryptic Password?"), true)
  	if err != nil {
  		return "", err
  	}
  	if !noXkcd {
  		length, err := termio.AskForInt(ctx, fmtfn(4, "b", "How many words?"), 4)
  		if err != nil {
  			return "", err
  		}
  		g := xkcdpwgen.NewGenerator()
  		g.SetNumWords(length)
  		g.SetDelimiter(" ")
  		g.SetCapitalize(true)
  		return string(g.GeneratePassword()), nil
  	}
  
  	length, err := termio.AskForInt(ctx, fmtfn(4, "b", "How long?"), defaultLength)
  	if err != nil {
  		return "", err
  	}
  	symbols, err := termio.AskForBool(ctx, fmtfn(4, "c", "Include symbols?"), false)
  	if err != nil {
  		return "", err
  	}
  	corp, err := termio.AskForBool(ctx, fmtfn(4, "d", "Strict rules?"), false)
  	if err != nil {
  		return "", err
  	}
  	if corp {
  		return pwgen.GeneratePasswordWithAllClasses(length)
  	}
  	return pwgen.GeneratePassword(length, symbols), nil
  }
docs: // createGeneratePasssword will walk through the password generation steps