@Override
  public boolean equals(@Nullable Object obj) {
    if (obj == this) {
      return true;
    }
    if (!(obj instanceof ElementOrder)) {
      return false;
    }

    ElementOrder<?> other = (ElementOrder<?>)obj;
    return (myType == other.myType) && Objects.equals(myComparator, other.myComparator);
  }
@Override
  public boolean equals(@Nullable Object obj)