values []V,
indexer func(V) K,
ret := &IndexedTakeList[K, V]{
values: make([]kv[K, V], 0, len(values)),
}
for _, v := range values {
ret.values = append(ret.values, kv[K, V]{key: indexer(v), value: v})
}
}