def METHOD_NAME(
    previous_graph: Optional[GraphRepr],
    current_graph: GraphRepr,
    previous_results: Dict[str, Optional[List[Row]]],
    previous_erasure_results: Dict[str, int],
) -> Optional[GraphDiffSummary]:
    """
    Summarizes the differences between the current graph and previous graph
    with a series of counts.
    """
    graph_diff: Optional[GraphDiff] = _find_graph_differences(
        previous_graph, current_graph, previous_results, previous_erasure_results
    )
    if not graph_diff:
        return None
    return GraphDiffSummary(
        prev_collection_count=len(graph_diff.previous_collections),
        curr_collection_count=len(graph_diff.current_collections),
        added_collection_count=len(graph_diff.added_collections),
        removed_collection_count=len(graph_diff.removed_collections),
        added_edge_count=len(graph_diff.added_edges),
        removed_edge_count=len(graph_diff.removed_edges),
        already_processed_access_collection_count=len(
            graph_diff.already_processed_access_collections
        ),
        already_processed_erasure_collection_count=len(
            graph_diff.already_processed_erasure_collections
        ),
        skipped_added_edge_count=len(graph_diff.skipped_added_edges),
    )