code: private RolePlayerFragmentSet addRelationTypeLabels(ImmutableSet<Label> relTypeLabels) {
          Preconditions.checkState(relationTypeLabels() == null);
  
          return new AutoValue_RolePlayerFragmentSet(
                  varProperty(),
                  relation(), edge(), rolePlayer(), role(), roleLabels(), relTypeLabels
          );
      }
docs: NB: doesn't allow overwrites
  Apply an optimisation where we check the {@link RelationType} property.
  @param relTypeLabels the role-player fragment must link to any of these (not including sub-types)
  @return a new {@link RolePlayerFragmentSet} with the same properties excepting relation-type labels