@Override public void accept(BottomUpMemoVisitor visitor) { if (visitor.alreadyVisited(this)) { visitor.visitAgain(this); } else { arg.accept(visitor); visitor.visit(this); } }
@Override public String toString() { return "!" + arg.toString(); }
@Override public void accept(TopDownVisitor visitor) { visitor.visit(this); arg.accept(visitor); }
@Override public void accept(BottomUpVisitor visitor) { arg.accept(visitor); visitor.visit(this); }