@Override public final boolean sameAs(final Expr cmp) { if (!(cmp instanceof AxisStep)) return false; final AxisStep st = (AxisStep) cmp; if (preds.length != st.preds.length || axis != st.axis || !test.sameAs(st.test)) return false; for (int p = 0; p < preds.length; ++p) { if (!preds[p].sameAs(st.preds[p])) return false; } return true; }