package maps import "maps" type M[K comparable, V any] map[K]V // Map produces a new slice of values by mapping each value in the slice through // a transform function. func Map[K, Q comparable, V, W any](m M[K, V], f func(K, V) M[Q, W]) M[Q, W] { res := make(M[Q, W], len(m)) for k, v := range m { mm := f(k, v) maps.Copy(res, mm) } return res }