code: public final Constraint addConstraintsDebug(Constraint... c) {
  		ArrayList<Constraint> addedSoFar = new ArrayList<Constraint>(c.length);
  		for (Constraint con : c) {
  			if (!this.addConstraint(con)) {
  				this.removeConstraints(addedSoFar.toArray(new Constraint[addedSoFar.size()]));
  				return con;
  			}
  			else { addedSoFar.add(con); }
  		}
  		return null;
  	}
docs: Add a batch of constraints between {@link Variable}s.  This method is
  NOT implemented so as to perform only one propagation, rather it adds all constraints
  sequentially, and returns the first constraint that fails, {@code null} if no constraint
  fails.
  @param c The constraints to add.
  @return The first constraint that fails, {@code null} if no constraint
  fails.