code: private static boolean childrenMatch(AbstractExpression e1, AbstractExpression e2) {
          return new FilterMatcher(e1.getLeft(), e2.getLeft()).match() &&
                  new FilterMatcher(e1.getRight(), e2.getRight()).match();
      }
docs: Check that getLeft() and getRight() of the two expressions match.
  @param e1 first expression
  @param e2 second expression
  @return whether first's getLeft() matches with second's getLeft(), and first's getRight() matches second's
  getRight().