public boolean equals(final Object o) {
    if (this == o) return true;
    if (!(o instanceof ExpectedTypeInfoImpl that)) return false;

    if (myKind != that.myKind) return false;
    if (!myDefaultType.equals(that.myDefaultType)) return false;
    if (!myTailType.equals(that.myTailType)) return false;
    if (!myType.equals(that.myType)) return false;

    return true;
  }
public boolean equals(final Object o)