def METHOD_NAME(
    args: Namespace, slither: SlitherCompilationUnit, kspec_functions: Set[Tuple[str, str]]
) -> None:
    # Collect all slither functions
    slither_functions = _get_slither_functions(slither)
    # Determine which klab specs were not resolved.
    slither_functions_set = set(slither_functions)
    kspec_functions_resolved = kspec_functions & slither_functions_set
    kspec_functions_unresolved: Set[Tuple[str, str]] = kspec_functions - kspec_functions_resolved
    kspec_missing: List[Union[FunctionContract, StateVariable]] = []
    kspec_present: List[Union[FunctionContract, StateVariable]] = []
    for slither_func_desc in sorted(slither_functions_set):
        slither_func = slither_functions[slither_func_desc]
        if slither_func_desc in kspec_functions:
            kspec_present.append(slither_func)
        else:
            kspec_missing.append(slither_func)
    logger.info("## Check for functions coverage")
    json_kspec_present = _generate_output(kspec_present, "[✓]", green, args.json)
    json_kspec_missing_functions = _generate_output(
        [f for f in kspec_missing if isinstance(f, FunctionContract)],
        "[ ] (Missing function)",
        red,
        args.json,
    )
    json_kspec_missing_variables = _generate_output(
        [f for f in kspec_missing if isinstance(f, StateVariable)],
        "[ ] (Missing variable)",
        yellow,
        args.json,
    )
    json_kspec_unresolved = _generate_output_unresolved(
        kspec_functions_unresolved, "[ ] (Unresolved)", yellow, args.json
    )
    # Handle unresolved kspecs
    if args.json:
        output.output_to_json(
            args.json,
            None,
            {
                "functions_present": json_kspec_present,
                "functions_missing": json_kspec_missing_functions,
                "variables_missing": json_kspec_missing_variables,
                "functions_unresolved": json_kspec_unresolved,
            },
        )