@Override public Visitable visitAppl(ATermAppl arg) throws VisitFailure { AFun fun = (AFun) arg.getAFun().accept(this); ATerm[] arguments = arg.getArgumentArray(); if (fun != arg.getAFun()) { arg = arg.getFactory().makeAppl(fun, arguments); } for (int i = 0; i < arguments.length; i++) { Visitable v = arguments[i].accept(this); if (v != arguments[i]) { arg = (ATermAppl) arg.setChildAt(i, v); } } return arg; }