def METHOD_NAME(
    self, fork_name: str, name: str, current: Dict, previous: Dict
) -> List[Diagnostic]:
    """
    Compare nodes from two different modules for changes and
    emit diagnostics.
    """
    diagnostics: List[Diagnostic] = []
    all_items = set(previous.keys()) | set(current.keys())
    for item in all_items:
        if (fork_name, name, item) in EXCEPTIONAL_DIFFS:
            continue
        try:
            previous_item = previous[item]
        except KeyError:
            add_diagnostic(
                diagnostics,
                f"{item} in {name} has been added."
                "Glacier forks may only differ in difficulty block.",
            )
            continue
        try:
            current_item = current[item]
        except KeyError:
            add_diagnostic(
                diagnostics,
                f"{item} in {name} has been deleted."
                "Glacier forks may only differ in difficulty block.",
            )
            continue
        if item == "BOMB_DELAY_BLOCKS":
            previous_item.value.value = self.delay_blocks[fork_name]
        if not compare_ast(previous_item, current_item):
            add_diagnostic(
                diagnostics,
                f"`{item}` in `{name}` has changed."
                "Glacier forks may only differ in difficulty block.",
            )
    return diagnostics