+1 to put existing.
I was also considering update_value, but I think put_existing is better.
Please send a PR. Probably put_new!, put_existing and put_existing!.
All right, will do 
I love you, people!
Here we are: PR #5917
put_in(struct, [Access.key!(:field)], 5) is what put_in(struct, ~a[field], 5) uses under the hood, by the way.
These changes have been pushed into the Elixir repository. Map.replace/3, Map.replace!/3, Keyword.replace/3 and Keyword.replace!/3 have been added. 
I have just cycled back to Google -> ElixirForum -> this issue -> oh I was discussing this -> Map.replade! works when I already forgot how to do this. 
This was a really interesting discussion (and the PR as well).
For completeness here is a link to the commit where Map.replace/3 and Keyword.replace/3 were deprecated (which means they’re no longer documented and don’t show up if you try to do h Map.replace/3 in iEX).
@josevalim I believe it would had been much nicer if we have added the name Map.put! instead of the verb Map.replace! which has no corresponding function in Map ![]()
I logged in just to say thank you for this. ![]()






















