code: public boolean crosses(Error s) {
      int sstart = s.getStart();
      // either s's start is in this or this' start is in s
      return !this.contains(s)
          && !s.contains(this)
          && (getStart() <= sstart && sstart < getEnd() || sstart <= getStart()
              && getStart() < s.getEnd());
    }
docs: Returns true is the specified span crosses this span.
  
  @param s
  The span to compare with this span.
  
  @return true is the specified span overlaps this span and contains a
  non-overlapping section; false otherwise.