code: func groupByKeys(entries interface{}, key string) ([]string, error) {
  	keys, err := generalizedGroupByKey("groupByKeys", entries, key, func(groups map[string][]interface{}, value interface{}, v interface{}) {
  		groups[value.(string)] = append(groups[value.(string)], v)
  	})
  
  	if err != nil {
  		return nil, err
  	}
  
  	ret := []string{}
  	for k := range keys {
  		ret = append(ret, k)
  	}
  	return ret, nil
  }
docs: // groupByKeys is the same as groupBy but only returns a list of keys