boolean (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; }