<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_next(intersection, intersections, unused):
 """Gets the next node along a given edge. .. note:: This is a helper used only by :func:`basic_interior_combine`, which in turn is only used by :func:`combine_intersections`. This function does the majority of the heavy lifting for :func:`basic_interior_combine`. .. note:: This function returns :class:`.Intersection` objects even when the point isn't strictly an intersection. This is "incorrect" in some sense, but for now, we don't bother implementing a class similar to, but different from, :class:`.Intersection` to satisfy this need. Args: intersection (.Intersection):
 The current intersection. intersections (List[.Intersection]):
 List of all detected intersections, provided as a reference for potential points to arrive at. unused (List[.Intersection]):
 List of nodes that haven't been used yet in an intersection curved polygon Returns: .Intersection: The "next" point along a surface of intersection. This will produce the next intersection along the current edge or the end of the current edge. Raises: ValueError: If the intersection is not classified as :attr:`~.IntersectionClassification.FIRST`, :attr:`~.IntersectionClassification.TANGENT_FIRST`, :attr:`~.IntersectionClassification.SECOND`, :attr:`~.IntersectionClassification.TANGENT_SECOND` or :attr:`~.IntersectionClassification.COINCIDENT`. """

    result = None
    if is_first(intersection.interior_curve):
        result = get_next_first(intersection, intersections)
    elif is_second(intersection.interior_curve):
        result = get_next_second(intersection, intersections)
    elif intersection.interior_curve == CLASSIFICATION_T.COINCIDENT:
        result = get_next_coincident(intersection, intersections)
    else:
        raise ValueError(
            'Cannot get next node if not starting from "FIRST", '
            '"TANGENT_FIRST", "SECOND", "TANGENT_SECOND" or "COINCIDENT".'
        )

    if result in unused:
        unused.remove(result)
    return result