def _process_value_fetcher_call_args(args):
    """
    This function processes the incoming varargs of ValueNotFoundNode.__call__() and
    _ConfigNode.__call__().
    :param args: A list or tuple containing positional function call arguments. The optional
    arguments we expect are the following: An optional default value followed by zero or more
    JSONValueMapper instances.
    :return: (default_value, list_or_tuple_of_JSONValueMapper_instances)
    The default_value is _undefined if it is not present and the second item of the tuple is
    an empty tuple/list if there are not JSONValueMapper instances.
    """
    if not args:
        return _undefined, ()

    if isinstance(args[0], JSONValueMapper):
        default = _undefined
        mappers = args
    else:
        default = args[0]
        mappers = args[1:]

    for mapper in mappers:
        if not isinstance(mapper, JSONValueMapper):
            raise TypeError('%r isn\'t a JSONValueMapper instance!' % (mapper,))

    return default, mappers