def METHOD_NAME(result: Any, option: Any) -> Any:
    if isinstance(option, Mapping):
        default = default_option(option)
        if (
            isinstance(default, dict)
            and not isinstance(result, Mapping)
            or isinstance(default, list)
            and not (isinstance(result, Sequence) and not isinstance(result, str))
        ):
            result = default
        else:
            result = copy(result)  # type: ignore
        for key, value in cast(Mapping[Any, Any], option).items():
            if isinstance(key, int):
                if key >= len(result):
                    result.append(METHOD_NAME(default_option(value), value))
                    continue
                key = (key + len(result)) % len(result)
            try:
                current = result[key]
            except LookupError:
                current = default_option(value)
            result[key] = METHOD_NAME(current, value)
    elif isinstance(option, Sequence) and not isinstance(option, str):
        option = [METHOD_NAME(default_option(value), value) for value in option]  # type: ignore
        if isinstance(result, Sequence) and not isinstance(result, str):
            result = [*result, *option]
        elif result is not None:
            result = [result, *option]
        else:
            result = [*option]
    else:
        result = option
    return result