docs: def xy_spectrail_arc_intersections(self, slitlet2d=None):
          """Compute intersection points of spectrum trails with arc lines.
  
          The member list_arc_lines is updated with new keyword:keyval
          values for each arc line.
  
          Parameters
          ----------
          slitlet2d : numpy array
              Slitlet image to be displayed with the computed boundaries
              and intersecting points overplotted. This argument is
              optional.
  
          """
  
          # protections
          if self.list_arc_lines is None:
              raise ValueError("Arc lines not sought")
          number_spectrum_trails = len(self.list_spectrails)
          if number_spectrum_trails == 0:
              raise ValueError("Number of available spectrum trails is 0")
          number_arc_lines = len(self.list_arc_lines)
          if number_arc_lines == 0:
              raise ValueError("Number of available arc lines is 0")
  
          # intersection of the arc lines with the spectrum trails
          # (note: the coordinates are computed using pixel values,
          #  ranging from 1 to EMIR_NAXIS1, as given in the original
          #  image reference system ---not in the slitlet image reference
          #  system---)
          self.x_inter_rect = np.array([])  # rectified image coordinates
          self.y_inter_rect = np.array([])  # rectified image coordinates
          for arcline in self.list_arc_lines:
              # middle spectrum trail
              spectrail = self.list_spectrails[self.i_middle_spectrail]
              xroot, yroot = intersection_spectrail_arcline(
                  spectrail=spectrail, arcline=arcline
              )
              arcline.x_rectified = xroot
              self.x_inter_rect = np.append(
                  self.x_inter_rect, [xroot] * number_spectrum_trails
              )
              for spectrail in self.list_spectrails:
                  # compute expected ordinate y_expected in the rectified
                  # image
                  y_expected = self.corr_yrect_a + self.corr_yrect_b * \
                               spectrail.y_rectified
                  self.y_inter_rect = np.append(self.y_inter_rect, y_expected)
          if abs(self.debugplot) >= 10:
              print('>>> y0_frontier_lower_expected........: ',
                    self.y0_frontier_lower_expected)
              print('>>> y0_frontier_upper_expected........: ',
                    self.y0_frontier_upper_expected)
              print('>>> shifted y0_frontier_upper_expected: ',
                    self.corr_yrect_a +
                    self.corr_yrect_b * self.y0_frontier_lower)
              print('>>> shifted y0_frontier_lower_expected: ',
                    self.corr_yrect_a +
                    self.corr_yrect_b * self.y0_frontier_upper)
          #
          self.x_inter_orig = np.array([])  # original image coordinates
          self.y_inter_orig = np.array([])  # original image coordinates
          for arcline in self.list_arc_lines:
              for spectrail in self.list_spectrails:
                  xroot, yroot = intersection_spectrail_arcline(
                      spectrail=spectrail, arcline=arcline
                  )
                  self.x_inter_orig = np.append(self.x_inter_orig, xroot)
                  self.y_inter_orig = np.append(self.y_inter_orig, yroot)
  
          # display intersection points
          if abs(self.debugplot % 10) != 0 and slitlet2d is not None:
              # display image with zscale cuts
              title = "Slitlet#" + str(self.islitlet) + \
                      " (xy_spectrail_arc_intersections)"
              ax = ximshow(slitlet2d, title=title,
                           first_pixel=(self.bb_nc1_orig, self.bb_ns1_orig),
                           show=False)
              # spectrum trails
              for spectrail in self.list_spectrails:
                  xdum, ydum = spectrail.linspace_pix(start=self.bb_nc1_orig,
                                                      stop=self.bb_nc2_orig)
                  ax.plot(xdum, ydum, 'g')
              # arc lines
              for arcline in self.list_arc_lines:
                  xdum, ydum = arcline.linspace_pix(start=self.bb_ns1_orig,
                                                    stop=self.bb_ns2_orig)
                  ax.plot(xdum, ydum, 'g')
              # intersection points
              ax.plot(self.x_inter_orig, self.y_inter_orig, 'co')
              ax.plot(self.x_inter_rect, self.y_inter_rect, 'bo')
              # show plot
              pause_debugplot(self.debugplot, pltshow=True)