Only update the value to the "normalized" value if validation was error-free
Only update the value to the "normalized" value if validation was
error-free

Otherwise we mutate the calling object with something which isn't valid.
The goal for this section is to replace things with equivalent types, in
an error case it sometimes returns `nil` which is not equivalent if the
value was a number instead of a string (for example)

jacksontj/dataman