not necessarily related but delta.merge doesn't seem to mandate for the value to be update, it actually even states that a new object can be return in certain situations. Wouldn't it make more sense to enforce the value (method's argument) to be updated and refuse merging into DeltaAwares this delta is not aware of?