code: public void forEachArc(PairProcedure proc, GraphEventType evt) throws ContradictionException {
  		if (evt == GraphEventType.REMOVE_ARC) {
  			for (int i = frozenFirst[2]; i < frozenLast[2]; i++) {
  				if (delta.getCause(i, GraphDelta.AR_TAIL) != propagator) {
  					proc.execute(delta.get(i, GraphDelta.AR_TAIL), delta.get(i, GraphDelta.AR_HEAD));
  				}
  			}
  		} else if (evt == GraphEventType.ADD_ARC) {
  			for (int i = frozenFirst[3]; i < frozenLast[3]; i++) {
  				if (delta.getCause(i, GraphDelta.AE_TAIL) != propagator) {
  					proc.execute(delta.get(i, GraphDelta.AE_TAIL), delta.get(i, GraphDelta.AE_HEAD));
  				}
  			}
  		} else {
  			throw new UnsupportedOperationException();
  		}
  	}
docs: Applies proc to every arc which has just been removed or enforced, depending on evt.
  @param proc    an incremental procedure over arcs
  @param evt    either ENFORCEARC or REMOVEARC
  @throws ContradictionException if a failure occurs