An implementation should make sure that an object past in as the first parameter
can be set as a value of a field that is of a type passed in as the second parameter
An implementation should make sure that an object past in as the first parameter
can be set as a value of a field that is of a type passed in as the second parameter