anchor.diff:      second = IntersectionClassification_SECOND
   
       ! CASE 1: On an edge of first surface, no other intersections on that edge.
  -    curr_node%index_first = 2
  -    curr_node%s = 0.125_dp
  -    curr_node%interior_curve = first
  -    intersections(1)%index_first = 3
  -    intersections(1)%s = 0.5_dp
  -    intersections(1)%interior_curve = first
  +    curr_node = Intersection(0.125_dp, -1.0_dp, 2, -1, first)
  +    intersections(1) = Intersection(0.5_dp, -1.0_dp, 3, -1, first)
       remaining = 4
       call get_next( &
            1, intersections(:1), unused, remaining, &
  
positive.code:     nodes1(2, :) = [0.0_dp, 1.0_dp]
      edges_second(2)%nodes = nodes1
  
      intersection_%s = 0.0_dp
      intersection_%index_first = 2
      intersection_%t = 0.0_dp
      intersection_%index_second = 2
  
      call classify_intersection( &
           edges_first, edges_second, intersection_, enum_, status)
  
negative.code:     second = IntersectionClassification_SECOND
  
      ! CASE 1: Unchanged node (i.e. not at the end).
      curr_node = Intersection(0.5_dp, -1.0_dp, 3, -1, first)
      remaining = 4
      call to_front( &
           0, intersections(:0), unused, remaining, &
  