def generic_summary_provider(value_obj, internal_dict, class_synthetic_provider
    ):
    """
    Checks value type and returns summary.

    :param lldb.SBValue value_obj: LLDB object.
    :param dict internal_dict: Internal LLDB dictionary.
    :param class class_synthetic_provider: Synthetic provider class.
    :return: Value summary.
    :rtype: str
    """
    provider = class_synthetic_provider(value_obj, internal_dict)
    if provider is not None:
        return provider.summary()
    return 'Summary Unavailable'
