docs: private boolean changed(MemberId leader, Collection<MemberId> members) {
      checkNotNull(members, "members");
      checkArgument(!members.isEmpty(), "members cannot be empty");
      if (leader != null && !members.contains(leader)) {
        leader = null;
      }
      if (!Objects.equals(this.leader, leader)) {
        return true;
      } else if (!matches(this.members, members)) {
        return true;
      }
      return false;
    }