@Override public Expression<?> duplicate(Expression<?>[] newChildren) { assert newChildren.length == 1; if (negated == newChildren[0]) return this; return UnaryMinus.create(newChildren[0]); }
@Override public <E> String visit(UnaryMinus<E> n, HashMap<Class, String> data) { String negated = visit(n.getNegated()); return TransitionEncoding.unaryMinus + ":" + negated + ";"; }