Eww eww eww, I have a good one!
function argument: params vs **params
Assume both are the same Mapping.
The former can update in-place. The later, nope.
If the function is a generic function or one of the overloads. Wait what's that? It's the term used by functools.singledispatch to describe the fallback function when no overload function handles the case.
Anyway
Any param to either singledispatch generic or an overload, Whatever you throw at it, won't be in-place updatable.