@Override
    public boolean intersects(LongRangeSet other) {
      if (other instanceof Point) {
        return contains(((Point)other).myValue);
      }
      if (other instanceof ModRange modRange) {
        int lcm = lcm(modRange.myMod);
        if (lcm <= Long.SIZE && (modRange.widenBits(lcm) & widenBits(lcm)) == 0) return false;
      }
      long[] otherRanges = other.asRangeArray();
      for (int i = 0; i < otherRanges.length && otherRanges[i] <= myTo; i += 2) {
        if (myTo >= otherRanges[i] && myFrom <= otherRanges[i + 1] &&
            !modRange(otherRanges[i], otherRanges[i + 1], myMod, myBits).isEmpty()) {
          return true;
        }
      }
      return false;
    }
@Override
    public boolean intersects(LongRangeSet other)