This is a helper method for working structured objects in a functional manner.
This method will create a new structure where the fields named by keys in
kwargs replaced with the associated values.
Args
structure
_The structure with named fields to update.
**kwargs
_The list of key-value pairs of fields to update in structure.
Returns
A new instance of the same type of structure, with the fields named
in the keys of **kwargs replaced with the associated values.
Raises
KeyError
If kwargs contains a field that is not in structure.
TypeError
If structure is not a structure with named fields.