@Override public boolean isCanonical() { for (ThrowConstraint c : throwConstraints) { if (!c.isCanonical()) { return false; } } if (!entryKeys.isCanonical()) { return false; } if (returnKeys != null && !returnKeys.isCanonical()) { return false; } return super.isCanonical(); }