code: func (m *ColonSeparatedMultimapStringString) String() string {
  	type kv struct {
  		k string
  		v string
  	}
  	kvs := make([]kv, 0, len(*m.Multimap))
  	for k, vs := range *m.Multimap {
  		for i := range vs {
  			kvs = append(kvs, kv{k: k, v: vs[i]})
  		}
  	}
  	// stable sort by keys, order of values should be preserved
  	sort.SliceStable(kvs, func(i, j int) bool {
  		return kvs[i].k < kvs[j].k
  	})
  	pairs := make([]string, 0, len(kvs))
  	for i := range kvs {
  		pairs = append(pairs, fmt.Sprintf("%s:%s", kvs[i].k, kvs[i].v))
  	}
  	return strings.Join(pairs, ",")
  }
docs: // String implements github.com/spf13/pflag.Value