public boolean equals(Object o) {
		if (! (o instanceof CasValue)) {
			return false;
		}
		CasValue<?> v = (CasValue<?>) o;
		if(this.hasCasUnique != v.hasCasUnique) {
			return false;
		}
		
		if(this.hasCasUnique && this.casUnique != v.casUnique) {
			return false;
		}
		
		return this.value.equals(v.value);
	}