sbool anyFieldsDifferent(O a, O b, Iterable fields) { if (fields != null) for (S field : fields) if (neq(getOpt(a, field), getOpt(b, field))) true; false; }