Adds values to a map, returning a new, modified copy and leaving the original intact.
Use addValueMutate for a mutable
Map to start with, or undefined to automatically create a map
Function to create keys for values
What to do if a key already exists
Values to add
A new map containing values
Adds values to a map, returning a new, modified copy and leaving the original intact.
Use addValueMutate for a mutable