boolean (Object obj) { if (!(obj instanceof GitVersion other)) { return false; } if (compareTo(other) != 0) { return false; } if (myType == Type.UNDEFINED || other.myType == Type.UNDEFINED) { return true; } return myType == other.myType; }