@Override
	public void assign(final Assignment<? extends Item> assignment) throws NullPointerException, IllegalArgumentException {
		if (assignment == null) throw new NullPointerException("assignment = null");
		final Item value = assignment.value();
		if (value == null) throw new IllegalArgumentException("value = null");
		for (final Assigner<? super Item, ? super Item> assigner: this.assigners(assignment)) {
			assigner.assign(this, assignment);
		}
	}