When using defaults with a value which contains null objects or tuples, we cannot continue to traverse the value and apply defaults. Instead, when we find an attribute which is null, we return early and stop processing this branch.